題目描述
三個農民每天清晨5點起床,然後去牛棚給3頭牛**。第乙個農民在300秒(從5點開始計時)給他的牛**,一直到1000秒。第二個農民在700秒開始,在 1200秒結束。第三個農民在1500秒開始2100秒結束。期間最長的至少有乙個農民在**的連續時間為900秒(從300秒到1200秒),而最長的無人**的連續時間(從**開始一直到**結束)為300秒(從1200秒到1500秒)。
你的任務是編乙個程式,讀入乙個有n個農民(1 <= n <= 5000)擠n頭牛的工作時間列表,計算以下兩點(均以秒為單位):
最長至少有一人在**的時間段。
最長的無人**的時間段。(從有人**開始算起)
輸入輸出格式
輸入格式:題目大意就是給你一堆區間然你求重疊的區間中最長的是多少和不重疊的區間中空最多的是多少。line 1:
乙個整數n。
lines 2…n+1:
每行兩個小於1000000的非負整數,表示乙個農民的開始時刻與結束時刻。
輸出格式:
一行,兩個整數,即題目所要求的兩個答案。
以前做過一些類似的題目 共同點是先用結構體將區間左端點和右端點存起來然後按左端點排序。
在定義乙個中間變數用來存重疊區間的左右端點 當兩區間重疊的時候只需要判斷一下是否包含然後更新右端點,當不重疊的時候就可以求題目要求的了然後重複。
#include #include using namespace std;
struct qu
w[100000];
bool cmp(qu a,qu b)
sort(w+1,w+n+1,cmp);
int s1=w[1].a,s2=w[1].b,max1=w[1].b-w[1].a,max2=0;
for(int i=2; i<=n; i++)
else if(w[i].a>s2)
}cout<}
Milking Cows 擠牛奶 (貪心)
1.2.1 milking cows 擠牛奶 time limit 1 sec memory limit 64 mb submit 314 solved 66 submit status discuss description 三個農民每天清晨5點起床,然後去牛棚給3頭牛擠奶。第乙個農民在300時刻...
洛谷 1208 混合牛奶
由於乳製品產業利潤很低,所以降低原材料 牛奶 就變得十分重要。幫助marry乳業找到最優的牛奶採購方案。marry乳業從一些奶農手中採購牛奶,並且每一位奶農為乳製品加工企業提供的 是不同的。此外,就像每頭奶牛每天只能擠出固定數量的奶,每位奶農每天能提供的牛奶數量是一定的。每天marry乳業可以從奶農...
7 5 1 2 1 擠牛奶 80分
三個農民每天清晨 5 點起床,然後去牛棚給 3 頭牛 第乙個農民在 300 時刻 從 5 點開始計時,秒為單位 給他的牛 一直到 1000 時刻.第二個農民在 700 時刻開始,在 1200 時刻結束.第三個 農民在 1500 時刻開始 2100 時刻結束.期間最長的至少有乙個農民在 的連續時間為 ...