POJ 1064 Cable master 浮点数二分
来源:互联网 发布:代购淘宝店怎么开店 编辑:程序博客网 时间:2024/05/14 16:56
http://poj.org/problem?id=1064
题目大意:
有N条绳子,他们的长度分别为Li,如果从它们中切割出k条长度相同的绳子的话,这K条绳子每条能有多长?
思路:
二分,设答案为mid=(L+R)/2,
如果以mid划分可以分割出不小于K条绳子,那么解>=mid,
否则解小于mid
PS:
最后的输出坑死了。要保留两位整数且不进位。。。。T T
#include<cstdio>#include<cmath>const int MAXN= 10000+10;int n,k;double a[MAXN];bool ok(double mid){int cnt=0;for(int i=0;i<n;i++)cnt+=a[i]/mid;return cnt>=k;}int main(){while(~scanf("%d%d",&n,&k)){for(int i=0;i<n;i++)scanf("%lf",&a[i]);double L=0,R=100001;while(R-L > 1e-5) {double mid=(L+R)/2;if(ok(mid))L=mid;elseR=mid;}printf("%.2lf\n",floor(R*100)/100);//保留两位小数且不进位。。看了别人的。WA到哭。}return 0;}
二分也可以写成这样:
一次循环可以把区间的范围缩小一半,而100次循环可以达到10^-30精度范围,基本上是没有问题的
for(int i=0;i<100;i++){double mid=(L+R)/2;if(ok(mid))L=mid;elseR=mid;}
3 0
- POJ 1064 Cable master 浮点数二分
- POJ 1064 Cable master 浮点数二分
- POJ 1064 Cable master(浮点数二分)
- Cable master(浮点数二分)
- poj 1064 Cable master(浮点数的二分法)
- poj 1064 Cable master(二分)
- poj 1064 Cable master(二分)
- POJ 1064 Cable master(二分)
- poj 1064 Cable master【二分】
- [二分]poj 1064 Cable Master
- poj 1064 二分 Cable master
- POJ 1064 Cable master 【二分】
- POJ 1064 - Cable master(二分)
- 【POJ 1064 Cable master】+ 二分
- Poj 1064 Cable master(二分
- POJ 1064 Cable master 二分
- POJ 1064 Cable master【二分】
- poj 1064 Cable master 二分长度
- 获取Windows版本
- WhatsApp那些囧事
- A - 01背包
- 爱≠做爱
- 中国IT人才如何去硅谷找工作
- POJ 1064 Cable master 浮点数二分
- 华为荣耀今年目标是1亿美元利润
- 寒假英语学习录
- Android Application的作用
- form 中Enctype=multipart/form-data 的作用
- Chrome navigator.onLine 问题
- S5PV210开发板启动方式详解
- hive实例讲解实现in和not in子句
- 背SupremeWord整整7个月了,进度26%