您的位置:首页 > 其它

杭电 1551 Cable master 解题报告

2013-02-16 20:27 218 查看
题目偶不说了,贴代码:

#include<iostream>
using namespace std;

int main()
{
double temp,eps=1e-7;
int i,sum,max,low,high,mid,ans,n,k,s[10001];
while(cin>>n>>k && (n||k))
{
sum=max=0;
for(i=0;i<n;i++)
{
cin>>temp;
s[i]=(int)((temp+eps)*100);
if(max<s[i])
max=s[i];
}

ans=0;
low=1;
high=max;
while(high>=low)
{
sum=0;
mid=(low+high)/2;
for(i=0;i<n;i++)
sum+=s[i]/mid;
if(sum>=k)
{
low=mid+1;
if(ans<mid)
ans=mid;
}
else
high=mid-1;
}
printf("%.2lf\n",ans*0.01);
}
}


实话说,之前Wrong了很多次,而且我不知道为什么。懒得研究~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: