Educational Codeforces Round 127 C - Dolce Vita

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<ctype.h>
#include<iostream>
#include<algorithm>
#include<queue> 
#include<bitset>
typedef long long ll;
using namespace std;
ll mm[200009];
ll pre[200009];
void solve()
{
    ll len,all=0,mon;cin>>len>>mon;
    for(int i=1;i<=len;i++)
    cin>>mm[i];
    sort(mm+1,mm+len+1);
    for(int i=1;i<=len;i++)
    pre[i]=mm[i]+pre[i-1];
    
    ll ans=0;
    for(int i=1;i<=len;i++)
    {
        if(pre[i]>mon)
        continue;
        ans+=(mon-pre[i])/i+1;
    }
    cout<<ans<<endl;
}
int main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    int sum;cin>>sum;
    while(sum--)
    {
        solve();
    }
    return 0;
}

当时比赛推公式的时候头晕没推出来,赛后推的时候瞎搞都搞出来公式了我自己还没看懂(

ans+=购买买了i包的天数,(mon-pre[i])/i,表示购买了数量为i的物品的天数,苒后本身再加一

posted on 2022-04-23 13:35  zesure  阅读(42)  评论(0编辑  收藏  举报

导航