日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/13 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [BZOJ] 1620: [Usaco2008 Nov]Time Management 时间管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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 时间管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。