POJ 3104 Drying(二分答案)
【题目链接】 http://poj.org/problem?id=3104
【题目大意】
给出n件需要干燥的衣服,烘干机能够每秒干燥k水分,
不在烘干的衣服本身每秒能干燥1水分
求出最少需要干燥的时间。
【题解】
考虑将烘干机的烘干效应变为k-1,那么就是每件衣服在每秒都会自动减少一水分
如果我们知道最少需要的时间,那么每件衣服自己减少的水分数量就知道了,
在除去自然减少的水分之后,看看还需要多少k-1的水分减少才能烘干全部的衣服就可以了,
因此我们二分这个答案,验证是否可行即可。
【代码】
#include <cstdio>
#include <algorithm>
using namespace std;
const int N=100010;
int n,k,a[N];
bool check(int x){
int cnt=0;
for(int i=1;i<=n;i++){
if(a[i]-x<=0)continue;
cnt+=(a[i]-x+k-2)/(k-1);
//printf("%d\n",cnt);
if(cnt>x)return 0;
}return 1;
}
int main(){
while(~scanf("%d",&n)){
int l=1,r=0,ans;
for(int i=1;i<=n;i++)scanf("%d",&a[i]),r=max(r,a[i]);
scanf("%d",&k);
if(k==1){printf("%d\n",r);continue;}
while(l<=r){
int mid=(l+r)>>1;
//printf("%d %d %d\n",l,r,mid);
if(check(mid))ans=mid,r=mid-1;
else l=mid+1;
}printf("%d\n",ans);
}return 0;
}
POJ 3104 Drying(二分答案)的更多相关文章
- POJ 3104 Drying(二分答案)
题目链接:http://poj.org/problem?id=3104 ...
- POJ 3104 Drying 二分
http://poj.org/problem?id=3104 题目大意: 有n件衣服,每件有ai的水,自然风干每分钟少1,而烘干每分钟少k.求所有弄干的最短时间. 思路: 注意烘干时候没有自然风干. ...
- POJ 3104 Drying [二分 有坑点 好题]
传送门 表示又是神题一道 Drying Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9327 Accepted: 23 ...
- POJ 3104 Drying (二分+精度)
题目链接:click here~~ [题目大意]: 题意:有一些衣服,每件衣服有一定水量,有一个烘干机,每次能够烘一件衣服,每分钟能够烘掉k单位水. 每件衣服没分钟能够自己主动蒸发掉一单位水, 用烘干 ...
- POJ 3104 Drying (经典)【二分答案】
<题目链接> 题目大意: 有一些衣服,每件衣服有一定水量,有一个烘干机,每次可以烘一件衣服,每分钟可以烘掉k滴水.每件衣服没分钟可以自动蒸发掉一滴水,用烘干机烘衣服时不蒸发.问最少需要多少 ...
- POJ 3122 Pie 二分答案
题意:给你n个派,每个派都是高为一的圆柱体,把它等分成f份,每份的最大体积是多少. 思路: 明显的二分答案题-- 注意π的取值- 3.14159265359 这样才能AC,,, //By Sirius ...
- poj 3104 Drying(二分查找)
题目链接:http://poj.org/problem?id=3104 Drying Time Limit: 2000MS Memory Limit: 65536K Total Submissio ...
- POJ 3104 Drying(二分
Drying Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 22163 Accepted: 5611 Descripti ...
- poj 3104 Drying(二分搜索之最大化最小值)
Description It is very hard to wash and especially to dry clothes in winter. But Jane is a very smar ...
随机推荐
- PHP根据身份证号码验证、获取星座、生肖和性别函数
首先介绍一下身份证含义 新的18位身份证号码各位的含义:1-2位省.自治区.直辖市代码:3-4位地级市.盟.自治州代码:5-6位县.县级市.区代码:7-14位出生年月日,比如19670401代表196 ...
- VMware下设置CentOS虚拟机与主机同一网段
由于在开发中经常使用到自己的电脑搭建虚拟机器进行个人开发,而虚拟机器每次登录所使用的命令行界面比较小,看起来也不舒服.以下主要对centos虚拟机器下配置与主机共享同一网段IP,通过第三方软件(put ...
- mysql 1054错误
往数据库插入数据的时候报错,插入数据的是这样的 [SQL] insert into stock(code,name,b_price,s_price,num,rate,profit) values (1 ...
- Oracle EBS-SQL (PO-16):检查采购订单完成情况统计.sql
select e.FULL_NAME 采购员, sum(plla ...
- Java Thread 总结
目 录 线程的概述(Introduction) 线程的定义(Defining) 1) 继承java.lang.Thread类 2) 实现java.lang.Runnable接口 线程的启动(St ...
- python内置函数(2)-递归与迭代
这篇文章简单介绍了迭代和递归的概念.两者的区别 什么是迭代: 迭代是重复反馈过程的活动,其目的通常是为了接近并达到所需的目标或结果.每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来 ...
- js实现form表单提交,图片预览功能
代码如下 <html> <head> <meta http-equiv="Content-Type" content="text/html; ...
- querySelectorAll
<!DOCTYPE html><html><body> <div id="query">第一个</div> <di ...
- Android应用开发基本流程及测试运行
(1)Android App工程项目的创建 File—New—New Project 设置项目.程序包的名称 设置项目名称为MyDiary,程序包名为org.socrates.mydiary.acti ...
- 解决UITableView数据没有充满屏幕时,显示多余的空白cell的问题
#pragma mark 去除多余的线 -(void) clearExtrLine{ UIView *view = [[UIView alloc] init]; view.backgroundColo ...