hdu 1551 Cable master(二分法)
2015-09-04 22:55
316 查看
原题链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1551
题目大意:
N个电缆,均分成K份。
问每份最长为多少。
思路:
求出总长度,总长度/K即每份最大值,然后与0开始二分,直到找到能分成K份的最大值。
代码如下:
http://acm.hdu.edu.cn/showproblem.php?pid=1551
题目大意:
N个电缆,均分成K份。
问每份最长为多少。
思路:
求出总长度,总长度/K即每份最大值,然后与0开始二分,直到找到能分成K份的最大值。
代码如下:
#include<iostream> #include<cmath> using namespace std; const int MAXN = 10000 + 10; double cable[MAXN]; int main() { int N, K; while (scanf("%d%d",&N,&K)&&(N+K)) { double right = 0; for (int i = 0; i < N; i++) { scanf("%lf", &cable[i]); right += cable[i]; } right /= K; double left = 0, mid, ans = 0; while (abs(right - left)>0.001)//题目要求保留两位小数,所以算到第三位 { int sum = 0; mid = (left + right) / 2; for (int i = 0; i < N; i++) { sum += floor(cable[i] / mid);//向下取整。 } if (sum<K) right = mid; else left = mid; if (sum == K&&ans < mid) ans = mid; } printf("%.2lf\n",ans); } return 0; }
相关文章推荐
- 市面上需要关注的物联网操作系统
- Device eth0 does not seem to be present,delaying initialization.
- expect
- 域传送漏洞总结
- 机器学习实战Logistic回归笔记
- 我看原型链
- Leetcode229 Majority Element II
- C++标准库笔记之一 Chapter 3 New Language Features
- HDU 5035 Delivery (2014年北京赛区网络赛D题)
- Android之Thread与Service
- mongodb学习04 操作详解(2)
- KVC的步骤 以及重点
- xml的增,删,改,查
- C++Primer新笔记之----第12章 动态内存与智能指针
- 已知二叉树的前序和中序遍历,构建该二叉树
- parseInt() 和强制转换的区别(int)
- VirtualBox快捷键
- 第三方应用分享到微信朋友圈功能
- Codeforces Gym 100339I Sum vs Product 剪枝搜索
- 面试题搜集