bzoj1620 [Usaco2008 Nov]Time Management 时间管理
Description
Ever the maturing businessman, Farmer John realizes that he must manage his time effectively. He has N jobs conveniently numbered 1..N (1 <= N <= 1,000) to accomplish (like
 milking the cows, cleaning the barn, mending the fences, and so on). To manage his time effectively, he has created a list of the jobs that must be finished. Job i requires a certain amount of time T_i (1 <= T_i <= 1,000) to complete and furthermore must be
 finished by time S_i (1 <= S_i <= 1,000,000). Farmer John starts his day at time t=0 and can only work on one job at a time until it is finished. Even a maturing businessman likes to sleep late; help Farmer John determine the latest he can start working and
 still finish all the jobs on time.
N个工作,每个工作其所需时间,及完成的Deadline,问要完成所有工作,最迟要什么时候开始.
Input
* Line 1: A single integer: N
* Lines 2..N+1: Line i+1 contains two space-separated integers: T_i and S_i
Output
* Line 1: The latest time Farmer John can start working or -1 if Farmer John cannot finish all the jobs on time.
Sample Input
3 5
8 14
5 20
1 16
INPUT DETAILS:
Farmer John has 4 jobs to do, which take 3, 8, 5, and 1 units of
time, respectively, and must be completed by time 5, 14, 20, and
16, respectively.
Sample Output
OUTPUT DETAILS:
Farmer John must start the first job at time 2. Then he can do
the second, fourth, and third jobs in that order to finish on time.
水题一道……
首先按deadline降序排一遍,保存一个当前的最大开始时间,那么当加入一个工作,要么保存答案的比这个工作的deadline大,要么后者大。无论如何一定要保证做完这个工作之后的时间比两者都大,这样才满足条件。所以两者取小的就行了。不会的自己再yy吧……
#include<cstdio>
#include<algorithm>
using namespace std;
struct work{
int s,t;
}a[1010];
int n,ans=10000000;
inline int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
inline int min(int a,int b)
{return a<b?a:b;}
inline bool cmp(const work &a,const work &b)
{return a.s>b.s;}
int main()
{
n=read();
for (int i=1;i<=n;i++)
{
a[i].t=read();
a[i].s=read();
}
sort(a+1,a+n+1,cmp);
for (int i=1;i<=n;i++)
ans=min(ans,a[i].s)-a[i].t;
if (ans<0) ans=-1;
printf("%d",ans);
}
bzoj1620 [Usaco2008 Nov]Time Management 时间管理的更多相关文章
- BZOJ 1620: [Usaco2008 Nov]Time Management 时间管理( 二分答案 )
		二分一下答案就好了... --------------------------------------------------------------------------------------- ... 
- 1620: [Usaco2008 Nov]Time Management 时间管理
		1620: [Usaco2008 Nov]Time Management 时间管理 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 506 Solved: ... 
- BZOJ 1620: [Usaco2008 Nov]Time Management 时间管理
		Description Ever the maturing businessman, Farmer John realizes that he must manage his time effecti ... 
- 【BZOJ】1620: [Usaco2008 Nov]Time Management 时间管理(贪心)
		http://www.lydsy.com/JudgeOnline/problem.php?id=1620 一开始想不通啊.. 其实很简单... 每个时间都有个完成时间,那么我们就从最大的 完成时间的开 ... 
- BZOJ——1620: [Usaco2008 Nov]Time Management 时间管理
		Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 920 Solved: 569[Submit][Status][Discuss] Description ... 
- BZOJ 1620 [Usaco2008 Nov]Time Management 时间管理:贪心
		题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1620 题意: 有n个工作,每一个工作完成需要花费的时间为tim[i],完成这项工作的截止日 ... 
- bzoj 1620: [Usaco2008 Nov]Time Management 时间管理【贪心】
		按s从大到小排序,逆推时间模拟工作 #include<iostream> #include<cstdio> #include<algorithm> using na ... 
- bzoj1620 / P2920 [USACO08NOV]时间管理Time Management
		P2920 [USACO08NOV]时间管理Time Management 显然的贪心. 按deadline从大到小排序,然后依次填充时间. 最后时间为负的话那么就是无解 #include<io ... 
- P2920 [USACO08NOV]时间管理Time Management
		P2920 [USACO08NOV]时间管理Time Management 题目描述 Ever the maturing businessman, Farmer John realizes that ... 
随机推荐
- CSS flex让所有灵活的项目都带有相同的长度,忽略它们的内容:
			.flexbox { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; displa ... 
- win8开机密码忘了怎么办
			原文地址:http://zhidao.baidu.com/question/582486883100064325.html windows8系统虽然让众用户用着不习惯,但是还是拥有大批追随者.今天,绿 ... 
- 新闻:型牌男装:网上订服装,如何将返修率降到5个点以下 | IT桔子
			新闻:型牌男装:网上订服装,如何将返修率降到5个点以下 | IT桔子 型牌男装:网上订服装,如何将返修率降到5个点以下 
- 关于ognl.OgnlException: target is null for setProperty(null的解决方案
			在跑struts2的时候有时候会出现上面的错,特别是新手, 这种情况是在struts2高级的POJO访问时候出现的s 警告: Error setting expression 'user.passwo ... 
- hdu 5167 Fibonacci(预处理)
			Problem Description Following is the recursive definition of Fibonacci sequence: Fi=⎧⎩⎨01Fi−1+Fi−2i ... 
- IOS的一个带动画的多项选择的控件(一)
			先上效果图: 这个程序分2个层次,一个是顶部的带UITextField的bar,一个是下拉选择的view,下拉选择的view带有4个自己定义的UIView 我们先定义一个UIViewControlle ... 
- Android 实时文件夹
			实时文件夹是一种用来显示由某个ContentProvider提供的数据信息的桌面组件.要创建一个实时文件夹,必须要有两个方面的支持. 1,要定义一个用来创建实时文件夹的Activity. 2,所指定数 ... 
- Picasso – Android系统的图片下载和缓存类库
			Picasso – Android系统的图片下载和缓存类库 Picasso 是Square开源的一个用于Android系统下载和缓存图片的项目.该项目和其他一些下载图片项目的主要区别之一是:使用4.0 ... 
- mysql三种binlog日志的理解
			最近,一直在纠结要不要改数据库binlog的日志格式,原先用的是row格式,导致数据库binlog日志较大,磁盘空间本来也不是很大,所以就想看看能不能改变binlog日志.在该binlog日志之前,先 ... 
- css-选择器-优先级
			<!DOCTYPE html>CSS选择器优先级相同优先级下,位置在文档后面的覆盖前面的不同优先级下,越能具体描述元素的css选择器,优先级越高 具体情况:HTML元素继承父级元素的CSS ... 
