bzoj1029 JSOI2007 建築搶修

2022-08-21 14:03:09 字數 518 閱讀 4436

按照t2從小到大排列之後貪心。

若當前任務可以插入,則插入。

若當前任務不可以插入,分兩種情況:

①當前任務的耗時大於等於之前插入的任務的最大耗時:跳過當前任務

②當前任務的耗時小於之前插入的任務的耗時:將最前插入的耗時最大的那個任務刪除,插入當前任務

用堆維護

#include#include#include#include#include#include#includeusing namespace std;

#define maxn 150010

priority_queueq;

int n;

int i;

int res,ans,tmp;

struct node

a[maxn];

int cmp(node x,node y)

int main()

else

}printf("%d",ans);

return 0;

}

bzoj1029 JSOI2007 建築搶修

傳送門 貪心顯然。1.按照最後時限排序,暴力插入。但是顯然會錯。10 10 10 20 2 21 2 21 2 21 答案是2,但是顯然最優的是4 於是考慮改進。2.在無法修理時我們可以放棄花費時間最長的工作。明顯花費時間最長的工作時間大於當前工作是修改更優。我們可以用乙個大根堆實現。然後就通過了。...

bzoj1029 JSOI2007 建築搶修

time limit 4 sec memory limit 162 mb submit 4807 solved 2157 submit status discuss 小剛在玩jsoi提供的乙個稱之為 建築搶修 的電腦遊戲 經過了一場激烈的戰鬥,t部落消滅了所有z部落的 入侵者。但是t部落的基地裡已經...

bzoj1029 JSOI2007 建築搶修

description 小剛在玩jsoi提供的乙個稱之為 建築搶修 的電腦遊戲 經過了一場激烈的戰鬥,t部落消滅了所有z部落的 入侵者。但是t部落的基地裡已經有n個建築設施受到了嚴重的損傷,如果不盡快修復的話,這些建築設施將會完全 毀壞。現在的情況是 t部落基地裡只有乙個修理工人,雖然他能瞬間到達任...