UVA11729 Commando War

来源:互联网 发布:中国时间服务器域名 编辑:程序博客网 时间:2024/06/05 12:46

题目链接:https://vjudge.net/problem/UVA-11729
题意:有n个士兵,有n个任务,你要给这n个士兵下达任务,每个士兵你需要花费bi的时间下达任务,这个士兵需要花费ji的时间完成,你只有给一个士兵下达完任务以后才能给其他士兵下达任务,问你如何给士兵下达任务,才能使得完成所有任务的时间最小
解析:肯定是优先给完成任务时间长的士兵下达任务,因为下达任务的时间是不可避免的,但是完成任务的时间确可以和下达任务的时间重叠,所有完成任务时间越长的越先接到命令是越好的

#include <bits/stdc++.h>using namespace std;const int maxn = 1e3+10;struct node{    int b,j;    bool operator < (const node &b)const    {        return j>b.j;    }}a[maxn];int main(void){    int n,case_t = 1;    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 maxx = 0,ans = 0;        for(int i=0;i<n;i++)        {            ans += a[i].b;            maxx = max(maxx,ans+a[i].j);        }        printf("Case %d: %d\n",case_t++,maxx);    }    return 0;}
原创粉丝点击