5.8
洛谷P1843 奶牛晒衣服
和那个充电的什么什么的设备有点像。
弄干衣服的时间越少,用机器烘干的时间就应该越多。
二分答案。
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int n,a,b,q[500010];
bool check(int x){ //检测x时间内能否晒干全部衣服
int d,t,sum=0;
for(int i=0;i<n;i++){
d=q[i]-a*x;
if(d<=0) continue; //能自然晒干的就跳过
t=(d%b==0)?(d/b):(d/b+1); //不能的 计算要用机器晒多久
sum+=t;
if(sum>x) return false; //加速
}
return sum<=x;
}
int main()
{
cin>>n>>a>>b;
for(int i=0;i<n;i++)
cin>>q[i];
int l=0,r=500001;
while(l+1<r){
int mid=(l+r)/2;
if(check(mid))
r=mid;
else
l=mid;
}
cout<<r;
return 0;
}