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

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 850  Solved: 539
[Submit][Status][Discuss]

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

4
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

2

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.

HINT

Source

Silver

Analysis

一波排序,把死线从后往前排

只有最后一条死线可以压着线做

然而由于农夫超~~~~专注的,同一时间只能做一件事

因此从后往前遍历,往时间轴上安排事情

防止前面的事情影响后面压线完成任务

=w=

细节自行思考

Code

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 #define maxn 10000000
 5 using namespace std;
 6
 7 struct job{
 8     int t,deadline;
 9 }list[maxn/1000];
10
11 int n;
12
13 int cnt[maxn];
14
15 bool cmp(const job &a,const job &b){
16     return a.deadline < b.deadline;
17 }
18
19 int main(){
20     scanf("%d",&n);
21
22     for(int i = 1;i <= n;i++)
23         scanf("%d%d",&list[i].t,&list[i].deadline);
24
25     sort(list+1,list+1+n,cmp);
26
27     for(int i = n;i >= 1;i--){
28         int j = list[i].deadline;
29         while(cnt[j] && j) j--;
30         list[i].deadline = j;
31         int tmp = list[i].t;
32         while(tmp && j) cnt[j--] = 1,tmp--;
33     }
34
35     int ans = list[1].deadline-list[1].t;
36     if(ans < 0) printf("-1");
37     else printf("%d",ans);
38 //    cout << ans;
39
40 //    for(int i = 1;i <= n;i++){
41 //        printf("%d %d\n",list[i].t,list[i].deadline);
42 //    }
43
44
45
46     return 0;
47 }

心情极差qwq

转载于:https://www.cnblogs.com/Chorolop/p/7553855.html

[BZOJ] 1620: [Usaco2008 Nov]Time Management 时间管理相关推荐

  1. bzoj 1620: [Usaco2008 Nov]Time Management 时间管理(贪心)

    1620: [Usaco2008 Nov]Time Management 时间管理 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 834  Solved ...

  2. Time Management 时间管理

    Time Management 时间管理 世界上最快而又最慢,最长而又最短,最平凡而又最珍贵,最易被忽视而又最令人后悔的是什么? ------时间 ------接下来敢不敢完成挑战测试:你对时间的感知 ...

  3. bzoj 1618: [Usaco2008 Nov]Buying Hay 购买干草(完全背包)

    1618: [Usaco2008 Nov]Buying Hay 购买干草 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1196  Solved: 62 ...

  4. bzoj 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场(DFS)

    1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 913  Solv ...

  5. BZOJ 1619 [Usaco2008 Nov]Guarding the Farm 保卫牧场:dfs【灌水】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1619 题意: 给你一个n*m的地形图,位置(x,y)的海拔为h[x][y]. 一个山顶的定 ...

  6. BZOJ 1229: [USACO2008 Nov]toy 玩具

    题意:就是经典餐巾问题 就是天数特别大 到了10^5 这道题弄了我好久啊,第一道三分题,不过好像三分并不难,我怕我讲不好,网上那么多我就不在这里说了. 网上面题解写的简直是太草率+简单了吧.坑爹的百度 ...

  7. 洛谷 P2920 [USACO08NOV]时间管理Time Management

    时间管理Time Management 二分枚举开始时间. #include <iostream> #include <cstdio> #include <algorit ...

  8. 时间管理(Time Management)

    什么是时间管理 时间管理是有效地运用时间,降低变动性. 时间管理的目的:决定什么事该做,什么事不该做. 时间管理最重要的功能:是透过事先的 规划,作为一种提醒与指引. 一.无法管理外在的要求 主管最大 ...

  9. 时间管理——你不可不知的3种时间管理方法

    时间管理--你不可不知的3种时间管理方法 时间管理  英文名:Time Management 请问,如果每天都有86400元进入你的银行户头,而你必须当天用光,你会如何运用这笔钱? 天下真有这样的好事 ...

最新文章

  1. 一笔画问题【数据结构-图论】
  2. Oracle打Patch报错Prerequisite check CheckActiveFilesAndExecutables failed.
  3. 程序员修炼之道阅读笔记01
  4. HDOJ/HDU 1556 Color the ball(树状数组)
  5. 块级元素 Vs 内联元素
  6. idea 怎么快速创建类的快捷键_「快捷键设置」[IDEA]常用快捷键和个人设置 - seo实验室...
  7. jquery概念、引入、选择器
  8. (五)Netty之Selector选择器
  9. 初学习C语言的小Tip
  10. java中四种引用类型
  11. 纯js浏览器h5调用摄像头扫描识别解析 条形码+二维码
  12. PLC可编程控制器、单片机开发应用及电气控制综合实训装置
  13. 设置代理服务器(谷歌+IE)
  14. rds基于什么开发_什么是云数据库RDS
  15. 获取当前日期上周的周一和周日日期
  16. 深入了解Spark SQL的Catalyst Optimizer
  17. 备胎的自我修养 | (1)备胎的境界--七友
  18. php实训心得体会doc,php实训报告心得体会php实训报告心得体会
  19. java 对象逃逸 解决_Java中的逃逸问题心得
  20. .NET Serviece安装及 启动报错(The Parameter is Incorrect)参数错误问题处理

热门文章

  1. [php]Undefined offset: 0错误
  2. 在Ubuntu和Mac OSX中安装boost
  3. C#使用HttpClient进行http操作
  4. 全志A33-gpio驱动程序
  5. 希望我不会“伤心至死”
  6. Photoshop一些人像处理技巧总结
  7. verilog中assign语句
  8. 嵌入式名词以及简略说明
  9. linux 查找文件夹_用python打造一个基于socket的文件(夹)传输系统
  10. postforobject 设置代理_OAuth2RestTemplate中的代理配置