P1577 切绳子

Posted HWIM

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1577 切绳子相关的知识,希望对你有一定的参考价值。

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 切绳子的主要内容,如果未能解决你的问题,请参考以下文章

洛谷—— P1577 切绳子

luogu P1577 切绳子

P1577 切绳子

洛谷 P1577 切绳子 题解

P1577 切绳子(二分)

算法91----切绳子