码迷,mamicode.com
首页 > 其他好文 > 详细

P1577 切绳子

时间:2017-06-28 20:18:38      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:hold   print   blog   输出   枚举   math   int   需要   保留   

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 切绳子

标签:hold   print   blog   输出   枚举   math   int   需要   保留   

原文地址:http://www.cnblogs.com/mjtcn/p/7091042.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!