POJ1064 Cable Master 二分
1 #include<cstdio>
2 #include<iostream>
3 #include<algorithm>
4 #include<queue>
5 #include<map>
6 #include<vector>
7 #include<set>
8 #include<string>
9 #include<cmath>
10 #include<cstring>
11 using namespace std;
12 int n,k;
13 double a[10010];
14 bool ok(double mid)
15 {
16 int sum=0;
17 for(int i=0;i<n;i++)
18 {
19 sum+=(int)(a[i]/mid);
20 }
21 return sum>=k;
22 }
23 int main()
24 {
25
26 while(scanf("%d%d",&n,&k)!=EOF)
27 {
28 for(int i=0;i<n;i++)
29 {
30 scanf("%lf",&a[i]);
31 }
32 double l=0,r=0x3f3f3f3f;
33 for(int i=0;i<=100;i++)//精度控制10-30次方
34 {
35 double mid=(l+r)/2;
36 if(ok(mid))
37 {
38 l=mid;//因为是求最多能有多长,如果ok,范围就变成[mid,r]
39 }
40 else
41 {
42 r=mid;
43 }
44 }
45 printf("%.2lf\n",floor(r*100)/100);
46 }
47 return 0;
48 }
分类:
OJ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2019-01-19 UVA 1587 Box
2019-01-19 UVA 10340 All in All
2019-01-19 UVA 202 Repeat Decimals