poj--1064
2024-10-20 09:22:25
题意:有N条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的绳子的话,这K条绳子最长能有多长?答案保留到小数点后2位。
思路:这些最大最小化问题大多数可以用二分查找的方法来解题
用 d 表示绳子最长可以为d,然后循环利用二分搜索使得中间值不断地缩小直到到达想要的精度
就是
void solve()
{
int low=;
int high=INF;
for(int i=;i<;i++){
int mid=(low+high)/;
if (is_ok(mid)) low=mid;
else high=mid;
}
printf("%.2f\n",floor(high*)/);
}
下面是完整的代码
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int K,N;
const int INF=;
double line[];
bool is_ok(double x)//用来判断这个值是否能使条件成立
{
int num=;
for(int i=;i<N;i++)
{
num+=(int)(line[i]/x);
}
return num>=K;
}
void solve()
{
double low=;
double high=INF;
for(int i=;i<;i++)
{
/*
这个思想是二分查找,
这是利用二分查找不断地是条件精确到需要的地步
就像用100次的循环就是使mid的值不断地缩小
从而找出相对精确的中间值很巧妙
*/
double mid=(low+high)/;
if(is_ok(mid)) low=mid;
else high=mid;
}
printf("%.2f\n",floor(high*)/);
}
int main()
{
while(cin>>N>>K)
{
for(int i=;i<N;i++)
cin>>line[i];
solve();
}
return ;
}
最新文章
- 从HTML原型到jsp页面完美转型攻略(教你即使不会写代码也能弄出漂亮的网页)
- 15 BasicHashTable基本哈希表类(二)——Live555源码阅读(一)基本组件类
- ./configure会报错:pr command not found
- windows bat 文件
- Codeforces Round #243 (Div. 1) A题
- ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码
- oracle slient静默安装并配置数据库及仅安装数据库不配置数据库shell
- lol盒子重点内容
- 5、sha1加密的一个坑
- Windows上mxnet实战深度学习:Neural Net
- Mac OS X版本的sublime text 3安装汇编语言语法支持
- app自动化测试Appium+python
- Qsort(c)_Sort(c++)用法
- 【问题集】redis集群set报错(error) MOVED 11469 192.168.181.201:7002
- numpy.ravel() vs numpy.flatten()
- 【linux命令总结】——后续用到的内容持续补充和更新
- achartengine刷新数据
- 『cs231n』作业3问题1选讲_通过代码理解RNN&;图像标注训练
- 第二部分 OpenStack安装与配置
- easyUI小技巧-纯干货
热门文章
- F. Clique in the Divisibility Graph DP
- final关键字,类的自动加载,命名空间
- 数据绑定以及Container.DataItem几种方式与用法分析
- Bootcamp Win10蓝牙鼠标的问题
- nodejs 实践:express 最佳实践(二) 中间件
- HBuilder 做移动端app流程
- 关于验证码在IE中不刷新的快速解决方法
- mysql主从设置windows
- iOS 学习随记 (一)
- 关于 NetBackup 应答文件(/tmp/NBInstallAnswer.conf)