清潔輪班 坑死我了

2021-09-20 15:30:09 字數 1228 閱讀 8661

農夫約翰正在分配他的一些牛(1<=n<=25,000)在穀倉周圍做一些清潔工作。他總是希望有乙隻牛在清理東西,並把一天分成t班(1<=t<=1 000 000),第一次是輪班1,最後一次是輪班t。

每頭奶牛只能在白天的某一段時間內進行清潔工作。任何被挑選來做清潔工作的母牛都會在整個時間間隔內工作。

你的工作是幫助農夫約翰分配一些牛來輪班,這樣(一)每班至少有一頭牛被分配給它,和(二)盡可能少的奶牛參與清潔。如果不可能為每班分配一頭牛,請列印-1。

輸入*第1行:兩個空格分隔的整數:n和t

*第2行.n+1:每一行都包含奶牛可以工作的間隔的開始和結束時間。母牛在開始時開始工作,在結束時間後結束工作。

輸出量*第1行:農場主約翰需要雇用的牛的最低數量,或-1,如果不可能為每班分配一頭牛。

樣本輸入

3 10

1 73 6

6 10

樣本輸出

2
暗示

這個問題有大量的輸入資料,使用scanf()代替cin來讀取資料,以避免超過時間限制。

輸入詳情:

有3頭母牛和10班輪班。牛#1可以工作1.7,牛#2可以工作3.6,牛#3可以工作6.10。

產出詳情:

通過選擇牛#1和#3,所有的輪班都包括在內。沒有辦法用不到兩頭牛來覆蓋所有的輪班。

#include#includeusing namespace std;

struct nodecow[25010];

int cmp(struct node a,struct node b)

if(cow[i].st==cow[j].st&&cow[i].end>cow[j].end)

} }*/ //加注釋部分排序錯誤

long long stop,big=0,i=0;

while(ibig)

big=cow[i].end;

i++;

} //如果big>stop,說明此牛可行;如果不可行,之後再也不會進入內層的while迴圈

if(big>=stop)

i--;//緩衝一下內層while迴圈的最後的i++;

} i++;

} if(big>=t)

printf("%d\n",count);

else printf("-1\n");

return 0;

}

我被人坑了。。。

在車上,繼續去南京看房,手機碼字,沒啥格式,大家見諒了 說的好像我之前寫的文章有啥排版格式一樣 不少人知道我前段時間租了乙個辦公室,乙個不知名公司的,具體哪家我就不說了,後來因為有一些原因我要退租。結果被坑了一波,具體說說啥坑。租這個辦公室的時候我交了五個月房租錢,押二付三,押金兩個月,付了三個月錢...

linux 我被坑了

usr bin vi bashrc 配置jdk時候root環境下 亂修改了一些變數導致不可用。內容 1 source etc environment,轉到自己沒有修改過的path的檔案,然後ls命令就可以用了 2 找到自己修改過的path檔案,我的是 bashrc檔案 3 vim bashrc,對錯...

坑死我啊,乙個WPF Adorner使用注意事項

專案中遇到這樣的要求,乙個button用乙個adorner裝飾,這個adorner上又有乙個button,如下面這樣 此時,我們在點選小button的時候只希望處理小button的事件,可是這時候,居然大button的事件也觸發了。按道理上講,adorner和button不在視覺化樹的乙個層次上,即...