UVA11729 - Commando War (贪心)

来源:互联网 发布:mac如何播放网页视频 编辑:程序博客网 时间:2024/06/11 11:42

题意:

n个任务,需要交代B分钟,执行J分钟,让你合理选择交代任务的次序,求得n个任务完成的最小总时长


思路:

为保证总时长最小,执行时长较大的应该先执行,所以每个按执行时长由大到小排序求得总时长。

代码:

#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>using namespace std;struct solder{int b, j;}s[1005];int cmp(solder x, solder y){if (x.j > y.j)return 1;return 0;}int main() {int n,Case=1;while (scanf("%d", &n) && n){int i;for (i = 0; i < n; i++)scanf("%d%d", &s[i].b, &s[i].j);sort(s, s + n,cmp);int sum = 0,cnt=0;for (i = 0; i < n; i++){sum += s[i].b;cnt = sum+s[i].j>cnt ? sum+s[i].j : cnt;}printf("Case %d: %d\n",Case,cnt);Case++;}return 0; }

0 0
原创粉丝点击