poj3104(二分判断可行性)
/*
translation:要使得一排衣服晾干,自然风干每分钟蒸发1单位的水分。用烘干机的话每分钟蒸发k单位的水分。求把所有衣物晾干的话至少需要多长时间?
solution:二分查找最小可行解首先二分枚举最短的时间mid。然后是判断该时间是否可行。可以发现对于水分单位量小于mid的衣服。只需要待其自然风干即可。而对于a[i]>mid的衣物来说,要使得能够在mid时间内完成衣物的烘干。就要满足方程:a[i]-t*k <= x-t(t为使用烘干机的时间)解得t >= (a[i] - x) / (k-1).注意这时候要用ceil函数向上取整。
note:1:这道题的二分循环次数如果设成100将超时。设置成50就可以。或者用pr - pl > 1来终止循环也可以2:注意k等于1的时候t >= (a[i] - x) / (k-1)的计算将出现错误。所以要对于k==1的情况单独处理#:这道题怎么判断所枚举的时间是否可行没想出来
date:2016.11.2
*/
#include <iostream>
#include <cstdio>
#include <cmath>using namespace std;
const int maxn = 100000 + 10;
const int INF = 1e9 + 10;typedef long long ll;ll a[maxn], n, k;bool check(ll x) //x的时间内能否使得所有的衣服晾干
{ll res = 0;for(int i = 0; i < n; i++){if(a[i] > x){res += ceil((a[i] - x) * 1.0 / (k - 1));if(res > x) return false;}}return true;
}int main()
{//freopen("in.txt", "r", stdin);while(~scanf("%lld", &n)){ll pl = 0, pr = 0;for(int i = 0; (ll)i < n; i++) scanf("%lld", &a[i]), pr += a[i];scanf("%lld", &k);if(k == 1){ll ans = -INF;for(int i = 0; i < n; i++) ans = max(ans, a[i]);printf("%d\n", ans); continue;}ll mid;while(pr - pl > 1){mid = (pl + pr) / 2;if(check(mid)) pr = mid;else pl = mid;}printf("%lld\n", pr);}return 0;
}
poj3104(二分判断可行性)相关推荐
- POJ3189二分最大流(枚举下界,二分宽度,最大流判断可行性)
题意: 有n头猪,m个猪圈,每个猪圈都有一定的容量(就是最多能装多少只猪),然后每只猪对每个猪圈的喜好度不同(就是所有猪圈在每个猪心中都有一个排名),然后要求所有的猪都进猪圈,但是要求所有 ...
- 【计几】闵可夫斯基和 二分判断点是否在凸包内
闵可夫斯基和算法(时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn)) 附:二分判断点是否在凸包内(时间复杂度 O ( n l o g n ) O(nlogn) O(nlo ...
- Gym 100883J palprime(二分判断点在凸包里)
题意:判断一堆小点有多少个在任意三个大点构成的三角形里面. 思路:其实就是判断点在不在凸包里面,判断的话可以使用二分来判断,就是判断该点在凸包的哪两个点和起点的连线之间. 代码: 1 /** @xig ...
- BZOJ-2756 奇怪的游戏 黑白染色+最大流+当前弧优化+二分判断+分类讨论
这个题的数据,太卡了,TLE了两晚上,各种调试优化,各种蛋疼. 2756: [SCOI2012]奇怪的游戏 Time Limit: 40 Sec Memory Limit: 128 MB Submit ...
- noip2017考前整理(未完)
快考试了,把我以前写过的题回顾一下. Noip2007 树网的核:floyd,推出性质,暴力. Noip2008 笨小猴:模拟 Noip2008 火柴棒等式:枚举 Noip2008 传纸条:棋盘dp ...
- 区域判断hdu 3681 Prison Break bfs+二分+dp
时间紧张,先记一笔,后续优化与完善. 这个是2010杭州区域赛的目题. bfs出最短路,二分谜底,dp判断可行性. #include <iostream> #include <cst ...
- NYOJ -804 Gift (二分)
Gift 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 HEIHEI was planning to send his friends some necklaces a ...
- 牛客contest897 D-Bamboo Rat(二分+黑白染色+最小割)
题目链接 题意 N×MN×MN×M的矩阵选择KKK个数相邻的数字不能同时选择,让最小的数字最大. 思路 二分枚举答案,对于每个答案,DinicDinicDinic判断可行性. #include < ...
- POJ 3104 Drying [二分 有坑点 好题]
传送门 表示又是神题一道 Drying Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9327 Accepted: 23 ...
最新文章
- jmeter在linux上运行
- 网易云信亮相WOT, 打造“IM+连麦互动直播”云服务
- 【Python】学习笔记总结6(正则表达式)
- 事故通报绝不能一报了事22344
- python 读取mysql大量数据处理_python使用多线程快速把大量mysql数据导入elasticsearch...
- 软考网络管理员学习笔记1之第一章计算机硬件基础
- MATLAB获取系统时间
- java文件读取的几个操作-2
- matlab实现移位寄存器,Matlab移位寄存器的实现
- googlePlay订阅商品对接流程
- 2055013-55-1,Ald-Ph-PEG6-acid在EDC或HATU等活化剂存在下,末端羧酸可与伯胺偶联形成稳定的酰胺键
- 使用MayaLiveLink插件在UE4中预览Maya模型动作
- 部分古钱知识--(4)
- 海思方案技术研发交流群/海思方案供需交流群
- 数据预测之BP神经网络具体应用以及matlab代码(转)
- 最好的3个iOS苹果手机上的txt阅读器
- 服务器机柜型号及技术参数
- Harris Corner(Harris角检测)
- 半导体激光器基础知识学习计划
- Nginx安装及配置详解