/*
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(二分判断可行性)相关推荐

  1. POJ3189二分最大流(枚举下界,二分宽度,最大流判断可行性)

    题意:       有n头猪,m个猪圈,每个猪圈都有一定的容量(就是最多能装多少只猪),然后每只猪对每个猪圈的喜好度不同(就是所有猪圈在每个猪心中都有一个排名),然后要求所有的猪都进猪圈,但是要求所有 ...

  2. 【计几】闵可夫斯基和 二分判断点是否在凸包内

    闵可夫斯基和算法(时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn)) 附:二分判断点是否在凸包内(时间复杂度 O ( n l o g n ) O(nlogn) O(nlo ...

  3. Gym 100883J palprime(二分判断点在凸包里)

    题意:判断一堆小点有多少个在任意三个大点构成的三角形里面. 思路:其实就是判断点在不在凸包里面,判断的话可以使用二分来判断,就是判断该点在凸包的哪两个点和起点的连线之间. 代码: 1 /** @xig ...

  4. BZOJ-2756 奇怪的游戏 黑白染色+最大流+当前弧优化+二分判断+分类讨论

    这个题的数据,太卡了,TLE了两晚上,各种调试优化,各种蛋疼. 2756: [SCOI2012]奇怪的游戏 Time Limit: 40 Sec Memory Limit: 128 MB Submit ...

  5. noip2017考前整理(未完)

    快考试了,把我以前写过的题回顾一下. Noip2007 树网的核:floyd,推出性质,暴力. Noip2008 笨小猴:模拟 Noip2008 火柴棒等式:枚举 Noip2008 传纸条:棋盘dp ...

  6. 区域判断hdu 3681 Prison Break bfs+二分+dp

    时间紧张,先记一笔,后续优化与完善. 这个是2010杭州区域赛的目题. bfs出最短路,二分谜底,dp判断可行性. #include <iostream> #include <cst ...

  7. NYOJ -804 Gift (二分)

    Gift 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 HEIHEI was planning to send his friends some necklaces a ...

  8. 牛客contest897 D-Bamboo Rat(二分+黑白染色+最小割)

    题目链接 题意 N×MN×MN×M的矩阵选择KKK个数相邻的数字不能同时选择,让最小的数字最大. 思路 二分枚举答案,对于每个答案,DinicDinicDinic判断可行性. #include < ...

  9. POJ 3104 Drying [二分 有坑点 好题]

    传送门 表示又是神题一道 Drying Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9327   Accepted: 23 ...

最新文章

  1. jmeter在linux上运行
  2. 网易云信亮相WOT, 打造“IM+连麦互动直播”云服务
  3. 【Python】学习笔记总结6(正则表达式)
  4. 事故通报绝不能一报了事22344
  5. python 读取mysql大量数据处理_python使用多线程快速把大量mysql数据导入elasticsearch...
  6. 软考网络管理员学习笔记1之第一章计算机硬件基础
  7. MATLAB获取系统时间
  8. java文件读取的几个操作-2
  9. matlab实现移位寄存器,Matlab移位寄存器的实现
  10. googlePlay订阅商品对接流程
  11. 2055013-55-1,Ald-Ph-PEG6-acid在EDC或HATU等活化剂存在下,末端羧酸可与伯胺偶联形成稳定的酰胺键
  12. 使用MayaLiveLink插件在UE4中预览Maya模型动作
  13. 部分古钱知识--(4)
  14. 海思方案技术研发交流群/海思方案供需交流群
  15. 数据预测之BP神经网络具体应用以及matlab代码(转)
  16. 最好的3个iOS苹果手机上的txt阅读器
  17. 服务器机柜型号及技术参数
  18. Harris Corner(Harris角检测)
  19. 半导体激光器基础知识学习计划
  20. Nginx安装及配置详解

热门文章

  1. [DQN] Playing Atari with Deep Reinforcement Learning
  2. Canvas入门教学(4)动画与碰撞检测
  3. [linux] Linux网络之TCP协议详解
  4. 多种汉语方言语音落地应用,微软智能语音解锁更多交互场景
  5. MogDB秘籍 之 乾坤大挪移
  6. 2015年1月工作记录和阅读记录
  7. python链家数据分析统计服_链家二手房成交——Python数据分析
  8. spark系列-应用篇之通过livy提交Spark任务
  9. 爬虫玩得好,牢饭吃到饱?这3条底线千万不能碰!
  10. 人人都来写算法 之 插入排序