poj3104
来源:互联网 发布:淘宝美工接单价格 编辑:程序博客网 时间:2024/04/29 23:10
链接:点击打开链接
题意:有n件湿衣服和一个烘干机,现在想要把它们都烘干,如果使用烘干机每分钟可以去除k单位的水,如不使用烘干机每分钟也会自然掉1单位的水,给出n件衣服的含水量,求出最少用多长时间可以全部烘干
代码:
#include <cmath>#include <cstdio>#include <iostream>using namespace std;const long long INF=0x3f3f3f3f;long long a[100005];long long n,k;long long judge(long long t){ //t是用了多长时间,因为不用烘干机时每分钟也会掉一单位水 long long i,sum; //所以a[i]<=t时,不用考虑这类的衣服它自己也会干,因而问 sum=0; //题变为总共用了多长时间的烘干机,假设用了x单位的烘干机 for(i=0;i<n;i++) //因此k*x+(t-x)>=a[i],推出x>=(a[i]-t)/(k-1),从而求出使 if(a[i]>t) //用烘干机的总时间 sum+=(long long)(ceil((a[i]-t)*1.0/(k-1))); return sum;}int main(){ long long i,l,r,ans,mid; while(scanf("%I64d",&n)!=EOF){ l=r=ans=0; for(i=0;i<n;i++){ scanf("%I64d",&a[i]); r=max(a[i],r); } scanf("%I64d",&k); if(k==1){ //k==1时相当于烘干机没有用,所以输出 printf("%I64d\n",r); //最大时间即可 continue; } while(l<=r){ //二分时间 mid=(l+r)/2; if(judge(mid)<=mid){ ans=mid; r=mid-1; } else l=mid+1; } printf("%I64d\n",ans); } return 0;}
0 0
- poj3104
- poj3104
- POJ3104
- POJ3104 Drying
- poj3104 二分
- POJ3104 Drying
- POJ3104--Drying
- POJ3104 二分
- POJ3104(二分法)
- POJ3104-Drying
- POJ3104 Drying
- POJ3104-Drying
- poj3104二分
- poj3104 二分
- 二分搜索--poj3104
- POJ3104 Drying [二分]
- POJ3104 Drying 二分搜索
- POJ3104:Drying(二分)
- sql基础执行顺序
- swift学习1 基本数据类型
- Install R & RStudio in Ubuntu
- 基于第三方WheelView 实现的一个时间选择器
- Install Shiny Server in Ubuntu 14.04.1
- poj3104
- jQuery-Ajax的一点小经验
- Centos配置80 端口转发
- 机器学习-KNN 算法
- Android应用Design Support Library完全使用实例
- 3K工资与8K工资的差距,不仅仅是钱!
- 扩展欧拉函数
- 解决MySQL不允许从远程访问
- svn提交时强制注释