二分搜索-poj1064


题目大概意思是:给你N个长度的电缆,需要你编写程序 将它分割成 K 根长度相等的小电缆。而我们的目的就是要求出分割出的 最大长度 可以为多少。此处可以应用二分搜索的知识来实现查找最终长度。
代码实现
#include <cstdio>
#include <cmath>
using namespace std;
int N,K;
double L[];
const int INF = 1e5+; bool C(double x){
int num=;
for(int i=;i<N;i++){//统计以长度为x的分法可以分割出的电缆数目
num+=L[i]/x;
}
return num>=K;//如果可以分割出大于或等于K数目的电缆,那么就返回true
} void solve(){
double lb=,ub=INF;
for(int i=;i<;i++){
double mid=(lb+ub)/;
if(C(mid)){//如果此时mid分割出的电缆数符合条件,那么就朝着更长的方向去进行分割
lb=mid;
}else{//否则,说明以mid为长度不能分割出K跟电缆,那么需要以更小的长度进行分割
ub=mid;
}
}
int res=ub*100;
double sum=double(res)*0.01;
printf("%.2lf\n",sum);
//printf("%.2f\n",floor(ub*)/);//保留两位小数且不进位。
//floor()函数实现向下取整,具体用法请见https://blog.csdn.net/dangzhangjing97/article/details/81279862} int main(){
while(~scanf("%d%d",&N,&K)){
for(int i=;i<N;i++){
scanf("%lf",&L[i]);
}
solve();
}
return ;
}
最后显示的必须是r不能是mid。因为mid可能是正好可以,取整后就不一定了。但是r可以。
floor()是向下取整
ceil()是向上取整
round是四舍五入
二分搜索-poj1064的更多相关文章
- [LeetCode] Largest BST Subtree 最大的二分搜索子树
Given a binary tree, find the largest subtree which is a Binary Search Tree (BST), where largest mea ...
- hdu 2199 Can you solve this equation?(二分搜索)
Can you solve this equation? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- hdu 2199:Can you solve this equation?(二分搜索)
Can you solve this equation? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- 二分搜索 UVALive 6076 Yukari's Birthday (12长春K)
题目传送门 题意:问使得sum (k^i) = n || n -1 (1 <= i <= r) 的min (r*k)组合的r和k 分析:r的最大不会超过40,枚举r,二分搜索k.注意会爆 ...
- hdu 1075 二分搜索
还是写一下,二分搜索好了 这道题开数组比较坑... 二分,需要注意边界问题,例如:左闭右闭,左闭右开,否则查找不到or死循环 先上AC代码 #include<iostream> #incl ...
- K Best(最大化平均数)_二分搜索
Description Demy has n jewels. Each of her jewels has some value vi and weight wi. Since her husband ...
- HDU 2852 KiKi's K-Number(树状数组+二分搜索)
题意:给出三种操作 0 e:将e放入容器中 1 e:将e从容器中删除,若不存在,则输出No Elment! 2 a k:搜索容器中比a大的第k个数,若不存在,则输出Not Find! 思路:树状数组+ ...
- nyoj914Yougth的最大化(二分搜索 + 贪心)
Yougth的最大化 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 Yougth现在有n个物品的重量和价值分别是Wi和Vi,你能帮他从中选出k个物品使得单位重量的价值最大吗 ...
- poj 2976 Dropping tests (二分搜索之最大化平均值之01分数规划)
Description In a certain course, you take n tests. If you get ai out of bi questions correct on test ...
随机推荐
- dubbo服务使用spring-data-mongodb进行时间查询的bug记录
一.项目情况:spring-boot+mongodb+dubbo. 二.问题:调用dubbo服务并使用spring-data-mongodb的gte,lte时间段比较查询, @Reference(re ...
- [NOIP2012提高]借教室 题解(二分答案+差分)
[NOIP2012提高&洛谷P1083]借教室 Description 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室 ...
- luogu P2900 [USACO08MAR]土地征用Land Acquisition
写这道题时,预处理部分少打了等号,吓得我以为斜率优化错了或者被卡精了 mmp 首先有一个很明显的结论(逃),就是一个土地如果长(\(x\))与宽(\(y\))都比另一个土地小,那么这个土地一定可以跟那 ...
- Python 3.5安装 pymysql 模块
原文链接: http://www.maiziedu.com/article/8272/ 事情是这样的,使用python3.4,django1.8,mysql5.5搭建一个web开发环境,由于pytho ...
- B - Birthday Boy Gym - 102007B
题目链接:https://cn.vjudge.net/contest/283924#problem/B 题目大意:给你n个人的信息,让你找出一个时间,要求让你选择一天,使得这一天的前一个生日距离它最远 ...
- Django CSRF提交遇见的问题
简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成.而对于django中设置防跨站请求伪造功能有 ...
- C 语言 register 关键字
register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率.注意是尽可能,不是绝对.你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很 ...
- STM32F103X datasheet学习笔记---RCC(reset and clock control)
1.前言 本文主要记录stm32 关于reset 和 clock部分 datasheet的内容. 2.reset 有三种类型的reset:system reset, power reset, back ...
- 转载:Java中的字符串常量池详细介绍
引用自:http://blog.csdn.net/langhong8/article/details/50938041 这篇文章主要介绍了Java中的字符串常量池详细介绍,JVM为了减少字符串对象的重 ...
- Python中的一些小语法
目录: 生成随机数 将一个字符串变为datetime类型,并且获取星期几 1.生成随机数 假设我们要操作的list如下: >>> import random >>> ...