NOI题库之二分 网线主管

来源:互联网 发布:隔壁老王的来历 知乎 编辑:程序博客网 时间:2024/05/16 06:51
#include<cstdio>#include<cstdlib>#include<iostream>#include<cstring>using namespace std;int n,k;double a[20000];int main(){int i,l=0,r=0,t,mid;double x;cin>>n; cin>>k;for(i=1;i<=n;i++){    cin>>x;    a[i]=x*100;if(a[i]>r) r=a[i];}r=r+1;while(l<r-1)        //或者了l<=r因为l可以等于r;{t=0;mid=(l+r)/2;for(i=1;i<=n;i++)t+=a[i]/mid;if(t>=k) l=mid;            //为求最大的情况而往后推else if(t<k) r=mid;}    mid=l;if(mid<1) printf("0.00");else { x=(double)mid/100; printf("%.2f",x); }return 0;}
1 0
原创粉丝点击