P1577 切绳子
Posted HWIM
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1577 切绳子相关的知识,希望对你有一定的参考价值。
题目描述
有N条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的
绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位。
输入输出格式
输入格式:
第一行两个整数N和K,接下来N行,描述了每条绳子的长度Li。
输出格式:
切割后每条绳子的最大长度。
输入输出样例
输入样例#1:
4 11 8.02 7.43 4.57 5.39
输出样例#1:
2.00
需要高精处理,不能while(l<=r),用for枚举100次高精就够了
1 #include<cstdio> 2 #include<cmath> 3 int n,m; 4 double l,r,mid,len[10010]; 5 bool work(double x) 6 { 7 int sum = 0; 8 for (int i=1; i<=n; ++i) 9 sum += (int)(len[i]/x); 10 return sum >= m; 11 } 12 int main() 13 { 14 scanf("%d%d",&n,&m); 15 for (int i=1; i<=n; ++i) 16 scanf("%lf",&len[i]); 17 l = 0, r = 1e8; 18 for (int i=1; i<=100; ++i) 19 { 20 mid = (l+r)/2; 21 if (work(mid)) l = mid; 22 else r = mid; 23 } 24 printf("%.2lf",floor(r*100)/100); 25 26 return 0; 27 }
以上是关于P1577 切绳子的主要内容,如果未能解决你的问题,请参考以下文章