描述


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_时间管理_(二分+贪心)的更多相关文章

  1. Luogu P2920 时间管理【二分答案】

    二分答案水题. (像我这么蒻的人都能十几分钟A掉) https://www.luogu.org/problemnew/show/P2920 开始时间一定在从0到min(t[i]-s[i])的一段区间上 ...

  2. BZOJ_1052_[HAOI2007]_覆盖问题_(二分+贪心)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1052 网格图,给出\(n\)个点,要求用3个边长相同的正方形覆盖所有点,求最小边长. 分析 显 ...

  3. BZOJ 1620: [Usaco2008 Nov]Time Management 时间管理( 二分答案 )

    二分一下答案就好了... --------------------------------------------------------------------------------------- ...

  4. PMP备考_第六章_项目时间管理

    项目时间管理 前言 项目时间管理是项目管理中最难的一个环节,与个人时间管理类似,团体的效率如果管理不当,是低于个人效率的,为了管理好时间,从预估,执行到反馈均需要严格的分析和处理.如果制定的计划是无法 ...

  5. 1620: [Usaco2008 Nov]Time Management 时间管理

    1620: [Usaco2008 Nov]Time Management 时间管理 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 506  Solved: ...

  6. BZOJ_3613_[Heoi2014]南园满地堆轻絮_二分答案

    BZOJ_3613_[Heoi2014]南园满地堆轻絮_二分答案 Description 小 Z 是 ZRP(Zombies’ Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者, ...

  7. BZOJ_3993_[SDOI2015]星际战争_二分+网络流

    BZOJ_3993_[SDOI2015]星际战争_二分+网络流 Description 3333年,在银河系的某星球上,X军团和Y军团正在激烈地作战.在战斗的某一阶段,Y军团一共派遣了N个巨型机器人进 ...

  8. 用户管理_组管理_权限管理.ziw

    2017年1月10日, 星期二 用户管理_组管理_权限管理 用户管理: useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage ...

  9. bzoj1620 / P2920 [USACO08NOV]时间管理Time Management

    P2920 [USACO08NOV]时间管理Time Management 显然的贪心. 按deadline从大到小排序,然后依次填充时间. 最后时间为负的话那么就是无解 #include<io ...

随机推荐

  1. Git的安装以及注册账号等操作

    1.安装Git-2.5.1-64-bit.exe  一直下一步直至完成 2.注册github账号 官网地址:https://github.com/github 3.找到一个按钮“New Reposit ...

  2. php封装文件上传

    这是一个经常在项目中遇到的问题,所以封装一个,分享给大家. 一,前期配置php.ini     如果上传文件超过了php配置那么$_POST或者$_FILES等都是空数组,这点是一个坑,因为那时候就不 ...

  3. Harry Potter

    Names appearing in "Harry Potter" 1.Harry Potter ①Harry is from Henry. ②Harry is related t ...

  4. How to: Registry settings for generating Verbose log

    Please make sure you have following registry keys set on you computer. 32-bit: HKEY_LOCAL_MACHINE\SO ...

  5. Build Error 6041: Internal build error

    Note: Following content is reprinted from the Original article Flexera : Build Error 6041. Only for ...

  6. memcached 在windows下安装及启动

    memcached 在windows下安装及启动   Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数, ...

  7. OpenCASCADE 基础

    OpenCASCADE 基础 转载▼ 一直在用OCC作项目,但这方面的中文资料很少,看来OCC在中国还不是十分普及: 后来,项目中使用OCC和DirectX结合使用,取得了很好的效果: 随着OCC6. ...

  8. Django视图函数

    一.视图函数 1. 视图函数的第一个参数一定是一个HTTPRequest类型的对象,这个对象是Django自动创建的,具体形参名通常用request.通过这个对象,可以调用请求的一些参数,比如requ ...

  9. Web API 返回json文件的2中不用方式

    //方法一:直接返回序列化后的json文件 public static HttpResponseMessage ConvertToJson(this Object obj) { String str= ...

  10. Highcharts资料

    对应的API:   http://api.hcharts.cn/#chart.events 对应的中文网实例:http://www.hcharts.cn/demo/highcharts/dynamic ...