POJ 1064_Cable master
题意:
给定一系列长度的电缆,将他们切成K条相等长度的电缆,问每条最长有多长?
分析:
对长度进行二分,判断能否满足K条。
二分搜索:
在求解最大化或最小化问题中,能够比较简单的判断条件是否满足,那么使用二分搜索法可以很好地解决问题。
结束判定:
正常处理整数时,对于[l,r)结束范围即为l=r,但是小数的处理就涉及精度的要求了。
在输出小数时,需要设置合理的结束条件满足精度的要求,可以指定循环次数作为终止条件,一次循环把区间的范围缩小一半,100次的循环可达到10−30的精度范围。也可以把终止条件设置成(r−l)>EPS,即指定一个区间大小。
在输出时注意处理一下。
代码:
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn = 10005, INF = 200005;
double a[maxn];
int N, K;
int judge(double mid)
{
int cnt = 0;
for(int i = 0; i < N; i++){
cnt += floor(a[i]/mid);
}
if(cnt>=K) return 1;
else return 0;
}
int main (void)
{
scanf("%d%d",&N,&K);
for(int i = 0; i < N; i++) scanf("%lf",&a[i]);
double l = 0, r = INF, mid;
for(int i = 0; i < 100; i++){
mid = l + (r - l)/2;
if(judge(mid)) {l = mid ;}
else r = mid;
}
printf("%.2f\n", floor(l*100)/100);
}
floor函数差点忘了都
POJ 1064_Cable master的更多相关文章
- POJ:Dungeon Master(三维bfs模板题)
Dungeon Master Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16748 Accepted: 6522 D ...
- POJ——2251Dungeon Master(三维BFS)
Dungeon Master Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 25379 Accepted: 9856 D ...
- [poj] Dungeon Master bfs
Description You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is co ...
- POJ 2251-Dungeon Master (三维空间求最短路径)
Description You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is co ...
- Poj-P2533题解【动态规划】
本文为原创,转载请注明:http://www.cnblogs.com/kylewilson/ 题目出处: http://poj.org/problem?id=2533 题目描述: 如果ai1 < ...
- Poj-P1088题解【动态规划/记忆化搜索】
本文为原创,转载请注明:http://www.cnblogs.com/kylewilson/ 题目出处: http://poj.org/problem?id=1088 题目描述: 区域由一个二维数组给 ...
- Poj-P3468题解【线段树】
本文为原创,转载请注明:http://www.cnblogs.com/kylewilson/ 题目出处: http://poj.org/problem?id=3468 题目描述: 给N个数A1, A2 ...
- poj 2251 Dungeon Master
http://poj.org/problem?id=2251 Dungeon Master Time Limit: 1000MS Memory Limit: 65536K Total Submis ...
- POJ 2251 Dungeon Master --- 三维BFS(用BFS求最短路)
POJ 2251 题目大意: 给出一三维空间的地牢,要求求出由字符'S'到字符'E'的最短路径,移动方向可以是上,下,左,右,前,后,六个方向,每移动一次就耗费一分钟,要求输出最快的走出时间.不同L层 ...
随机推荐
- String的用法——获取功能
package cn.itcast_04; /* String类获取功能 int length():获取字符的长度 char charAt(int index):获取指定索引位置的字符 int ind ...
- CentOS 7 下配置 firewalld(firewall-cmd)实现 NAT 转发 软路由
如果配合 DHCP 服务或实现更多功能. ☼ NAT 转发软路由 开启 NAT 转发之后,只要本机可以上网,不论是单网卡还是多网卡,局域网内的其他机器可以将默认网关设置为已开启 NAT 转发的服务器 ...
- 重构30-Return ASAP(尽快返回)
该话题实际上是诞生于移除箭头反模式重构之中.在移除箭头时,它被认为是重构产生的副作用.为了消除箭头,你需要尽快地return. ) { orderTotal = sum(products)) { or ...
- 遮罩 HUD 指示器 蒙板 弹窗
遮罩 HUD 指示器 蒙板 弹窗 UIAlertView的使用<代理方法处理按钮点击> UIAlertView *alertView = [[UIAlertView alloc] init ...
- Node.js——网站访问一般流程
- vue框架的知识
基础:实例----组件----指令----选项-----计算属性----事件绑定----模板渲染-----内置动画 ---组件交互----路由. vuejs干了什么事情:数据渲染/数据同步 组件化/模 ...
- 洛谷 P3388 【模板】割点
题目背景 割点 题目描述 给出一个n个点,m条边的无向图,求图的割点. 输入输出格式 输入格式: 第一行输入n,m 下面m行每行输入x,y表示x到y有一条边 输出格式: 第一行输出割点个数 第二行按照 ...
- 6-Java-C(小题答案)
1.15 2.36 3.0.58198 4.return v.size()-v.indexOf(n) 5."%"+(width-s.length()-2)/2+"s%s% ...
- C#在Excel的簡單操作--適用:與DB數據的簡單交互
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- Laravel Homestead的安装和使用(照搬)
原文:https://blog.csdn.net/woqianduo/article/details/81091154/ 1.简介 1.1.Homestead是什么 Laravel Homestead ...