二分法 POJ-3104 Drying

来源:互联网 发布:javascript日历源码 编辑:程序博客网 时间:2024/05/21 07:50
#include <iostream>#include <cstring>#include <cstdio>#include <cmath>#include <algorithm>#include <cstdlib>using namespace std;long long n;long long a[100010];int main(){long long maxv=0;long long high,low=1;long long i,j,k;while(cin>>n){memset(a,0,sizeof(a));for(i=0;i<n;++i){scanf("%lld",&a[i]);if(a[i]>maxv){maxv=a[i];}}cin>>k;if(k==1){cout<<maxv<<endl;continue;}long ans=0;high=maxv;while(low<=high){long long mid=(low+high)/2,sum=0,s;for(i=0;i<n;++i){if(a[i]>mid){s=ceil((a[i]-mid)*1.0/(k-1));sum+=s;}}if(sum<=mid){ans=mid;high=mid-1;}else{low=mid+1;}}cout<<ans<<endl;}return 0;}
搞了很多次才过,cin导致超时一次,函数写错一次,各种水
0 0
原创粉丝点击