Codeforces - 1118D2 - Coffee and Coursework (Hard Version) - 二分
生活随笔
收集整理的這篇文章主要介紹了
Codeforces - 1118D2 - Coffee and Coursework (Hard Version) - 二分
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://codeforces.com/problemset/problem/1118/D2
也是很好想的一個二分啦。
驗證m的可行性的時候,肯定是把最多咖啡因的咖啡先盡可能平均分到每一天,因為同一天內調換喝咖啡的順序只會非增,而且平均分更優是顯然的。
#include<bits/stdc++.h> using namespace std; #define ll long longint n,m; int a[200005];int ok(int mi){ll sum=0;for(int i=0;i<n;i++){sum+=max(0,a[i]-i/mi);}if(sum>=m)return 1;elsereturn 0; }int binary(){int l=1,r=1e9,m;while(1){m=(l+r)>>1;if(l==m){if(ok(l)){return l;}else if(ok(r)){return r;}else{return -1;}}if(ok(m)){r=m;}else{l=m+1;}} }int main(){scanf("%d%d",&n,&m);for(int i=0;i<n;i++){scanf("%d",&a[i]);}sort(a,a+n,greater<int>());printf("%d\n",binary()); }?
轉載于:https://www.cnblogs.com/Yinku/p/10414622.html
總結
以上是生活随笔為你收集整理的Codeforces - 1118D2 - Coffee and Coursework (Hard Version) - 二分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP使用GD库封装验证码类
- 下一篇: Qt使用UDp通信、套接字socket的