POJ-3104

来源:互联网 发布:团队管理优化效果 编辑:程序博客网 时间:2024/05/06 12:40

还是一道二分搜索,比较简单,针对时间二分,有一点需要特别注意,就是如果用风干机的话,每分钟减k点水,这时候就不会再减自然风干的那1点了,否则的话就每分钟减1点,不要算多了

#include<cstdio>#include<algorithm>using namespace std;namespace{int n, k, dat[100000], maxx;bool check(int time){int count = time;for (int i = 0; i < n; i++){if (dat[i] > time){int remain = dat[i] - time;count -= remain % k ? remain / k + 1 : remain / k;}if (count < 0)return false;}return true;}void solve(){if (k == 1)printf("%d\n", maxx);else{k--;int lb = 0, ub = maxx, mid;while (lb + 1 < ub){mid = (lb + ub) / 2;if (check(mid))ub = mid;elselb = mid;}printf("%d\n", ub);}}}int main(){scanf("%d", &n);maxx = 0;for (int i = 0; i < n; i++){scanf("%d", &dat[i]);maxx = max(maxx, dat[i]);}scanf("%d", &k);solve();return 0;}


0 0
原创粉丝点击