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

      这题的题目是 贪心? 好吧..真的是贪心..只是稍微的尝试了一种方案..就过了...这种反感是将所有的项目按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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值