[CCPC2019 ONLINE]H Fishing Master

Posted greenduck

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CCPC2019 ONLINE]H Fishing Master相关的知识,希望对你有一定的参考价值。

题意

http://acm.hdu.edu.cn/showproblem.php?pid=6709


 

思考

先考虑所有鱼的烹饪时间小于k的情况。将T从大到小排序后,煮一条鱼相当于将其时间补齐至k。

由于鱼的烹饪时间会大于等于k,那么,最优解一定不会出现鱼不够煮的情况。在煮鱼期间,可以钓到$\fract_ik$条鱼,最后要补齐的鱼的数量有n-cnt-1条。-1是因为最开始没有鱼。


 

代码

技术图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long int ll;
 4 const int maxn=1E5+5;
 5 int T;
 6 ll n,k;
 7 ll t[maxn];
 8 bool cmp(ll x,ll y)
 9 
10     return x>y;
11 
12 void solve()
13 
14     cin>>n>>k;
15     ll cnt=0,ans=0;
16     for(int i=1;i<=n;++i)
17     
18         cin>>t[i];
19         ans+=t[i];
20         cnt+=t[i]/k;
21         t[i]%=k;
22     
23     cnt=min(cnt,n);
24     sort(t+1,t+n+1,cmp);
25     for(int i=1;i<=n-cnt-1;++i)
26         ans+=k-t[i];
27     cout<<ans+k<<endl;
28 
29 int main()
30 
31     ios::sync_with_stdio(false);
32     cin>>T;
33     while(T--)
34         solve();
35     return 0;
36 
View Code

 

以上是关于[CCPC2019 ONLINE]H Fishing Master的主要内容,如果未能解决你的问题,请参考以下文章

[CCPC2019 ONLINE]E huntian oy

CCPC2019网络赛

CCPC2019网络赛

[CCPC2019秦皇岛] E. Escape

ccpc 2019网络选拔赛

[2020.11.15]CCPC Final 2019