首页 > 其他 > 详细

Uva 11729 Commando War

时间:2014-04-06 13:05:13      阅读:522      评论:0      收藏:0      [点我收藏+]

  例题代码是c++,看起来实在不习惯。还是用我的c写舒服。

题意:突击队

  你有n个部下,每个部下需要完成一项任务。第i个部下需要你话b[i]分钟交代任务然后他会立刻独立地、无间断地执行j[i]分钟后完成任务。你需要选择交代任务的顺序,使得所有任务今早执行完毕(即最后一个执行完的任务尽早结束)。注意,不能同时给两个部下交代任务,但部下们可以同时执行他们各自的任务。

bubuko.com,布布扣
#include<stdio.h>
#include<stdlib.h>
#define max(a,b) (a)>(b)? (a):(b);
struct Node
{
    int b,j;
}J[1005];
int cmp(const void*a,const void*b)
{
    struct Node *c=(struct Node *)a;
    struct Node *d=(struct Node *)b;
    return c->j < d->j;
}
int main(void)
{
    int n,b,j,i,kase=1,sum,ans;
    while(scanf("%d",&n)==1&&n)
    {
        for(i=0;i<n;i++)
            scanf("%d%d",&J[i].b,&J[i].j);
        qsort(J,n,sizeof(J[0]),cmp);
        sum=0,ans=0;
        for(i=0;i<n;i++)
        {
            sum+=J[i].b;
            ans=max(ans,sum+J[i].j);//这里是关键,得到最大值 
        }
        printf("Case %d: %d\n",kase++,ans);
    }
    return 0;
}
bubuko.com,布布扣

 

Uva 11729 Commando War,布布扣,bubuko.com

Uva 11729 Commando War

原文:http://www.cnblogs.com/woshijishu3/p/3648341.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!