POJ1064Cable master
Posted som_nico
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ1064Cable master相关的知识,希望对你有一定的参考价值。
白皮书的二分
题意:有n条绳子,他们的长度分别为li,从他们中切个出k条长度相同的绳子的话,这k条绳子每条最长能有多长?保留小数点后两位
分析:二分
#include<cstdio> #include<cstring> #include<cmath> #define maxn 10010 #define INF 100001 double a[maxn]; int n,k; bool dix(double x) { int num=0,i; for(i=0;i<n;++i) num+=(int)(a[i]/x); return num>=k;//满足条件是返回true,不满足返回false } int main() { while(scanf("%d%d",&n,&k)!=EOF) { int i; for(i=0;i<n;++i) scanf("%lf",&a[i]); double left=0,right=INF,mid; i=1000; while(i--) { mid=(left+right)/2; if(dix(mid)) left=mid; else right=mid; } printf("%0.2f\n",floor(right*100)/100);//注意精度,可不明白%0.2lf输出为什么会错 } return 0; }
以上是关于POJ1064Cable master的主要内容,如果未能解决你的问题,请参考以下文章