您的位置:首页 > 理论基础 > 计算机网络

首届华中区程序设计邀请赛暨第十届武汉大学程序设计大赛网络预赛G题(HDOJ-4221)

2012-04-15 17:52 232 查看
这题的题目是 贪心? 好吧..真的是贪心..只是稍微的尝试了一种方案..就过了...这种反感是将所有的项目按D排序..按这个顺序来安排工作..找到过程中最大的penalty就是..原理..只是感性的觉得先到期的工作先做比后做得到的差距要小吧...没有证明...

Program:

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<math.h>
#define ll long long
using namespace std;
struct node
{
      ll C,D;
}a[100005];
ll T,t,n,i,ans,m;
bool cmp(node a,node b)
{
      if (a.D!=b.D) return a.D<b.D;
      return a.C<b.C;
}
int main()
{
      freopen("input.txt","r",stdin);
      freopen("output.txt","w",stdout);
      scanf("%I64d",&T);
      for (t=1;t<=T;t++)
      {
            scanf("%I64d",&n); 
            for (i=1;i<=n;i++) scanf("%I64d%I64d",&a[i].C,&a[i].D);
            sort(a+1,a+1+n,cmp);
            ans=0;
            m=0; 
            for (i=1;i<=n;i++)
            { 
                  m+=a[i].C;
                  if (m>a[i].D && m-a[i].D>ans) ans=m-a[i].D;
            }
            printf("Case %I64d: %I64d\n",t,ans);
      }
      return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐