51NOD 1099 任務執行順序 貪心思想

2021-09-25 12:51:18 字數 1340 閱讀 4051

1.0 秒

131,072.0 kb

20 分

3級題有n個任務需要執行,第i個任務計算時佔r[i]個空間,而後會釋放一部分,最後儲存計算結果需要佔據o[i]個空間(o[i] < r[i])。

例如:執行需要5個空間,最後儲存需要2個空間。給出n個任務執行和儲存所需的空間,問執行所有任務最少需要多少空間。

收起

第1行:1個數n,表示任務的數量。(2 <= n <= 100000)

第2 - n + 1行:每行2個數r[i]和o[i],分別為執行所需的空間和儲存所需的空間。(1 <= o[i] < r[i] <= 10000)

輸出執行所有任務所需要的最少空間。
20

14 1

2 111 3

20 4

7 56 5

20 7

19 8

9 420 10

18 11

12 6

13 12

14 9

15 2

16 15

17 15

19 13

20 2

20 1

135
1、可以把儲存的值加起來,然後找乙個計算-儲存的最小值加起來,就是最後答案。

#includeusing namespace std;

#define ll long long

const int maxn=1000000+66;

const ll mod=1e9+7;

struct node

a[maxn];

bool cmp(const node&a,const node&b)

int main()

ll s=0;

for(int i=1;i<=n;i++)

int flag=0;

cout<2、按照計算-儲存排序

#includeusing namespace std;

#define ll long long

const int maxn=1000000+66;

const ll mod=1e9+7;

struct node

a[maxn];

bool cmp(const node&a,const node&b)

int main()

sort(a+1,a+n+1,cmp);

ll s=a[1].r;

ll ans=a[1].r;

for(int i=1;i<=n;i++)

s-=a[i].o;

}int flag=0;

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個任務執行和...