POJ-3104 二分
来源:互联网 发布:sql 恢复查询 编辑:程序博客网 时间:2024/05/19 14:53
题意:给出一堆衣服的水分a[i],在不加吹风机情况下自动每一分钟减少1水分,加吹风机每分钟减少k水分,吹风机只能同时吹一件衣服,求最少需要多少时间。
二分枚举所需时间m,对每一件衣服,a[i]<=m则不用吹风机,否则用 ceil((a[i] -mid)/(k-1))时间的吹风机,如用吹风机总时间小于等于m则m符合条件,二分找出最小m
需要特判k=1
#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;int n,k;int a[100005];int chk(int m){long long cnt=0;for(int i=0;i<n;i++){if(a[i]>m){cnt+=ceil((a[i]-m)*1.0/(k-1));}}if(cnt>m)return 0;return 1;}int main(){int l,r,mid,ans=0;while(scanf("%d",&n)!=EOF){for(int i=0;i<n;i++){scanf("%d",&a[i]);}scanf("%d",&k);sort(a,a+n);if(k==1){printf("%d\n",a[n-1]);continue;}l=1;r=a[n-1];ans=0;while(l<=r){//printf("bs %d %d\n",l,r);mid=(l+r)/2;if(chk(mid)==1){ans=mid;r=mid-1;}else{l=mid+1;}}printf("%d\n",ans);}return 0;}
0 0
- POJ 3104 Drying 二分
- Poj 3104 (二分)
- POJ--3104--Drying【二分】
- POJ 3104 Drying 二分
- POJ-3104 二分
- poj 3104 Drying (二分)
- POJ 3104 Drying (二分)
- poj 3104 二分想法
- POJ 3104 Drying (二分)
- poj 3104(二分)
- poj 3104 二分答案
- POJ 3104- Drying-二分
- POJ 3104 二分
- POJ 3104 Drying(二分)
- POJ 3104 二分
- POJ - 3104 Drying(二分)
- poj 3104 二分
- POJ 3104(二分)
- 国内大公司内部的 C# 编程规范
- FZU - 2039 Pets (二分图匹配 2011年全国大学生程序设计邀请赛(福州))
- Python Import 详解
- jQuery 跨域访问问题解决方法
- 导入schema下的某个sequence
- POJ-3104 二分
- JS数组方法汇总 array数组元素的添加和删除
- 太牛了,搜狐快站上线微信插件 电商插件升级
- MyEclipse中SVN的使用方法
- Git常用命令
- 工作中的几个程序例子
- linux tar 解压命令总结
- linux几种快速清空文件内容的方法
- css 手写评分星星