51Nod 1099 任务执行顺序 (贪心)

Posted jaydenouyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51Nod 1099 任务执行顺序 (贪心)相关的知识,希望对你有一定的参考价值。

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 const int maxn =100000+5;
 6 struct node{
 7     int r, q;
 8 }a[maxn];
 9 
10 bool cmp(node x, node y){
11     if(x.r - x.q != y.r - y.q)
12         return (x.r-x.q) > (y.r-y.q);
13     return x.r > y.r;
14 }
15 
16 int main()
17 {
18     int n;
19     cin >> n;
20     for(int i =0 ;i<n;i++){
21         cin >> a[i].r >> a[i].q;
22     }
23     sort(a,a+n,cmp);
24     int ans = 0;            //总空间
25     int sum = 0;            //剩余的空间
26     for(int i = 0;i < n;i++){
27         if(sum < a[i].r){
28             ans += a[i].r - sum;
29             sum = a[i].r;
30         }
31         sum -= a[i].q;      //执行后剩下的空间
32     }
33     cout << ans << endl;
34     return 0;
35 }

 

以上是关于51Nod 1099 任务执行顺序 (贪心)的主要内容,如果未能解决你的问题,请参考以下文章

51NOD 1099 任务执行顺序

贪心法_2(草稿)

51nod 1163 贪心

51nod 1163 最高的奖励(贪心+优先队列)

[51NOD1272]最大距离(贪心)

51Nod 1344 走格子(贪心