当前位置 : 主页 > 网络编程 > PHP >

UVA11729 Commando War

来源:互联网 收集:自由互联 发布时间:2023-09-06
题目链接:​​https://vjudge.net/problem/UVA-11729​​​ 题意:有n个士兵,有n个任务,你要给这n个士兵下达任务,每个士兵你需要花费bi的时间下达任务,这个士兵需要花费ji的时间完成,


题目链接:​​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;
}


上一篇:hdu6097 Mindis【圆的反演】
下一篇:没有了
网友评论