BZOJ_1620_[Usaco2008_Nov]_Time_Management_时间管理_(二分+贪心)
描述
http://www.lydsy.com/JudgeOnline/problem.php?id=1620
N个工作,每个工作其所需时间,及完成的Deadline,问要完成所有工作,最迟要什么时候开始.
分析
我们可以想到二分开始的时间.对于一个给定的时间,判断是否可以完成.
如何判断呢?
我们假设有\(a,b\)两个任务且\(deadline(a)<deadline(b)\).
如果先完成\(b\),那么要求\(time[b]+time[a]<deadline(a)\).
如果先完成\(a\),那么要求\(time[a]<deadline(a),time[a]+time[b]<deadline(b)\).
显然第二种方案完成的可能性更大,所以我们贪心的选择每次先完成\(deadline\)小的任务.
#include <bits/stdc++.h>
#define fst first
#define scd second
using namespace std; typedef pair <int,int> P;
const int maxn=+;
int n,Max=~0u>>;
P a[maxn];
inline int read(int &x){x=;int k=;char c;for(c=getchar();c<''||c>'';c=getchar())if(c=='-')k=-;for(;c>=''&&c<='';c=getchar())x=x*+c-'';return x*=k;}
inline bool cmp(P a,P b){ return a.scd<b.scd; }
inline bool C(int x){
for(int i=,t=x-;i<=n;i++){
t+=a[i].fst;
if(t>=a[i].scd) return false;
}
return true;
}
inline int bsearch(int l,int r){
while(l<r){
int mid=l+(r-l+)/;
if(C(mid)) l=mid;
else r=mid-;
}
return l;
}
inline void init(){
read(n);
for(int i=;i<=n;i++) read(a[i].fst), read(a[i].scd), Max=min(Max,a[i].scd-a[i].fst);
sort(a+,a+n+,cmp);
}
int main(){
init();
int ans=bsearch(,Max);
if(ans==) ans=-;
printf("%d\n",ans);
return ;
}
BZOJ_1620_[Usaco2008_Nov]_Time_Management_时间管理_(二分+贪心)的更多相关文章
- Luogu P2920 时间管理【二分答案】
二分答案水题. (像我这么蒻的人都能十几分钟A掉) https://www.luogu.org/problemnew/show/P2920 开始时间一定在从0到min(t[i]-s[i])的一段区间上 ...
- BZOJ_1052_[HAOI2007]_覆盖问题_(二分+贪心)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1052 网格图,给出\(n\)个点,要求用3个边长相同的正方形覆盖所有点,求最小边长. 分析 显 ...
- BZOJ 1620: [Usaco2008 Nov]Time Management 时间管理( 二分答案 )
二分一下答案就好了... --------------------------------------------------------------------------------------- ...
- PMP备考_第六章_项目时间管理
项目时间管理 前言 项目时间管理是项目管理中最难的一个环节,与个人时间管理类似,团体的效率如果管理不当,是低于个人效率的,为了管理好时间,从预估,执行到反馈均需要严格的分析和处理.如果制定的计划是无法 ...
- 1620: [Usaco2008 Nov]Time Management 时间管理
1620: [Usaco2008 Nov]Time Management 时间管理 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 506 Solved: ...
- BZOJ_3613_[Heoi2014]南园满地堆轻絮_二分答案
BZOJ_3613_[Heoi2014]南园满地堆轻絮_二分答案 Description 小 Z 是 ZRP(Zombies’ Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者, ...
- BZOJ_3993_[SDOI2015]星际战争_二分+网络流
BZOJ_3993_[SDOI2015]星际战争_二分+网络流 Description 3333年,在银河系的某星球上,X军团和Y军团正在激烈地作战.在战斗的某一阶段,Y军团一共派遣了N个巨型机器人进 ...
- 用户管理_组管理_权限管理.ziw
2017年1月10日, 星期二 用户管理_组管理_权限管理 用户管理: useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage ...
- bzoj1620 / P2920 [USACO08NOV]时间管理Time Management
P2920 [USACO08NOV]时间管理Time Management 显然的贪心. 按deadline从大到小排序,然后依次填充时间. 最后时间为负的话那么就是无解 #include<io ...
随机推荐
- 九度OJ 1513 二进制中1的个数
题目地址:http://ac.jobdu.com/problem.php?pid=1513 题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 输入: 输入可能包含多个测试样 ...
- PHP学习心得(四)——基本语法
从 HTML 中分离 当 PHP 解析一个文件时,会寻找开始和结束标记,标记告诉 PHP 开始和停止解释其中的代码.此种方式的解析可以使 PHP 嵌入到各种不同的文档中,凡是在一对开始和结束标记之外的 ...
- Fluid Shopping Website 开发阶段性总结——第一周
开发目的: 可链接微信公众号,无论是桌面端.移动端完美兼容,给用户提供不逊于原生App的用户体验.作为一个软件,有充分的可扩展性,便于未来增强开发.同时给一些正在尝试做OTO的朋友们提供一个平台,因为 ...
- 调试NodeJS应用
OS:Windows 1.下载安装NodeJS 点击http://nodejs.org/界面上“Install”,下载后运行安装,默认安装到到C:\Program Files\nodejs.安装后确认 ...
- shell中的重定向(2>&1)
shell的输出可以分为标准输出和错误输出,2>&1中,2代表错误输出,1代表标准输出,&符号代表后面跟的是代号而不是文件. test.sh echo '我是标准输出' ls / ...
- windows下使用MinGW的调试工具gdb.exe调试C程序
1.编译源代码 C:MinGW\bin>gcc.exe -g -o program.exe program.c 编译选项上要加上“g”,这样生成的目标程序会含有调试内容,再用gdb调试的时候才能 ...
- protues仿真 51点亮点阵
电路图 程序 /*============================== 点亮点阵心形 ================================*/ #include <REGX5 ...
- poj 3261 Milk Patterns(后缀数组)(k次的最长重复子串)
Milk Patterns Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 7938 Accepted: 3598 Cas ...
- 自适应单本小说网站源码,基于bootstrap+dedecms。
具体效果:http://www.ishengxu.cc/ 基于bootstrap+dedecms,PC端与手机端自适应,广告位也都设计好了,很简单.
- C语言杂记
strcmp函数是可以和int数字进行比较的 , , , }; puts(ch); if (strcmp("AAA", ch)) { printf("real?true! ...