码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1789 Doing Homework again

时间:2016-05-02 16:53:22      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

简单贪心。

按分值排序,一个一个取,不能取的对答案就作出了贡献。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#include<algorithm>
using namespace std;

const int maxn=5000;
int n;
bool flag[maxn];
struct X
{
    int z;
    int c;
}s[maxn];

bool cmp(const X&a,const X&b)
{
    return a.c>b.c;
}

int main()
{
    int T; scanf("%d",&T);
    while(T--)
    {
        memset(flag,0,sizeof flag);
        scanf("%d",&n);
        for(int i=1;i<=n;i++) scanf("%d",&s[i].z);
        for(int i=1;i<=n;i++) scanf("%d",&s[i].c);

        sort(s+1,s+1+n,cmp);
        int ans=0;
        for(int i=1;i<=n;i++)
        {
            bool f=0;
            for(int j=s[i].z;j>=1;j--)
            {
                if(flag[j]==0)
                {
                    f=1;
                    flag[j]=1;
                    break;
                }
            }
            if(f==0) ans=ans+s[i].c;
        }
        printf("%d\n",ans);
    }
    return 0;
}

 

HDU 1789 Doing Homework again

标签:

原文地址:http://www.cnblogs.com/zufezzt/p/5452520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!