Commando War UVA

来源:互联网 发布:最全的p2p网络投资 编辑:程序博客网 时间:2024/06/07 13:51

传送门

水~~~~

题目大意:你给n个士兵安排任务,每个士兵安排任务的时间为bi 执行时间为ji  ,同一时间只能给一个士兵安排任务,但是士兵执行任务不妨碍给其他士兵安排和执行。求出最短的时间。

解题思路:贪心,无论怎样,执行时间长的就要先安排,因为安排了其他的,他就是最后,所以把所有最后完成的都提到前面,先执行,因此排序即可。


AC代码:

#include <iostream>#include <cstdio>#include <algorithm>using namespace std;struct work{int b, j;bool operator< (work a){return this->j > a.j;}} A[1005];int main(){int n;int Case = 0;while(scanf("%d", &n) && n){for(int i=0; i<n; i++)scanf("%d%d", &A[i].b, &A[i].j);sort(A, A+n);int cur = 0, max_time = 0;for(int i=0; i<n; i++){cur += A[i].b; //更新当前时间max_time = max(max_time, cur + A[i].j); //更新结束时间}printf("Case %d: %d\n", ++Case, max_time);}return 0;}


原创粉丝点击