poj 1064 Cable master 二分 题解《挑战程序设计竞赛》

地址 http://poj.org/problem?id=1064

poj 1064 Cable master 二分 题解《挑战程序设计竞赛》

题解 二分即可

其实 对于输入与精度计算不是很在行

老是被卡精度

后来学习了一个函数 floor 向负无穷取整 才能ac

代码如下

 #include <iostream>
#include <vector>
#include <math.h>
#include <algorithm> using namespace std; vector<double> v; int n, k; bool check(double m)
{
int count = ;
for (int i = ; i < v.size(); i++)
{
int cut = v[i] / m;
count += cut;
} if (count >= k) return false; return true;
} int main()
{
scanf("%d %d",&n,&k); for (int i = ; i < n; i++) {
double t;
scanf("%lf",&t);
v.push_back(t);
} sort(v.begin(),v.end()); double l = 0.001; double r = v.back(); for (int i = ; i < ; i++) {
double mid = (l + r) / ;
if (check(mid)) r = mid;
else l = mid + 0.0001;
} printf("%.2f", floor(l*)/);
return ;
}
上一篇:Python进制转换(二进制/八进制/十进制/十六进制)


下一篇:关于 redis.properties配置文件及rule