51Nod1099 任務執行順序(貪心)

2021-09-05 08:50:14 字數 610 閱讀 8931

剛開始是以為r最大的在前面,排序,結果只對了幾個測試案例,然後看了下面的思路,頓悟了。

假設只有兩個任務,那麼就兩種結果,先執行a,後執行b。或者先執行b,後執行a。

前者的結果是 max(a.oper,a.store+b.oper)

後者的結果是 max(b.oper,b.store+a.oper)

這個時候可以知道,結果一定是min( a.store+b.oper , b.store+a.oper )

假設a.store + b.oper < b.store + a.oper 。產生這樣結果的原因是 先執行a,後執行b的順序

所以有b.oper - b.store < a.oper - a.store。所以可知,排序的時候要將 store-oper 這個差值大的放前面,讓它先執行,這樣就能取到最小值。

原文:

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

struct nodea[100000];

bool cmp(node a,node b)

int main()

cout

}

51NOD 1099 任務執行順序

1099 任務執行順序 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 有n個任務需要執行,第i個任務計算時佔r i 個空間,而後會釋放一部分,最後儲存計算結果需要佔據o i 個空間 o i r i 例如 執行需要5個空間,最後儲存需要2個空間。給出n個任務執行和...

51 nod 1099 任務執行順序

有n個任務需要執行,第i個任務計算時佔r i 個空間,而後會釋放一部分,最後儲存計算結果需要佔據o i 個空間 o i r i 例如 執行需要5個空間,最後儲存需要2個空間。給出n個任務執行和儲存所需的空間,問執行所有任務最少需要多少空間。input 第1行 1個數n,表示任務的數量。2 n 100...

51nod 1099 任務執行順序

1099 任務執行順序 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 有n個任務需要執行,第i個任務計算時佔r i 個空間,而後會釋放一部分,最後儲存計算結果需要佔據o i 個空間 o i r i 例如 執行需要5個空間,最後儲存需要2個空間。給出n個任務執行和...