poj supermaket (贪心)

简介: http://poj.org/problem?id=1456 #include #include #include using namespace std; struct nod { int a; int d; }; bool cmp(nod x,nod y) { return x.

http://poj.org/problem?id=1456

#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
struct nod
{
    int a;
    int  d;

};
bool cmp(nod x,nod y)
{
    return x.a>y.a;
}
int main()
{
    nod aa[10005];
    int n;
    while(cin>>n)
    {   int tt[10005]={0};
        for(int i=0;i<n;i++)
        {
        cin>>aa[i].a>>aa[i].d;
        }
        int sum=0;
        sort(aa,aa+n,cmp);
        for(int j=0;j<n;j++)
        {if(tt[aa[j].d]==0)
            {
                sum+=aa[j].a;
                tt[aa[j].d]=1;
            }
            else//////排除比利益较大但天数已经被标记的成员。
            {
                for(int i=aa[j].d;i>0;i--)
                {if(tt[i]==0)
                    {

                        sum+=aa[j].a;
                    tt[i]=1;
                    break;
                    }
                }
            }
        }
        cout<<sum<<endl;

    }
    return 0;
}

 

相关文章
poj 1990 MooFest 树状数组
题意就是有N头牛,每头牛都有一个坐标和声调值(x, v),两头牛之间通讯要花费的能量是他们的距离乘以最大的一个音调值,现在要任意两头牛之间都相互通讯一次,求总共需要花费多少能量?
52 0
POJ-2253,Frogger(最短路问题)
POJ-2253,Frogger(最短路问题)
|
人工智能 网络架构
|
人工智能
POJ 2370 Democracy in danger(简单贪心)
Democracy in danger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3388   Accepted: 2508 Description In one of the...
958 0
|
文件存储
poj 2229 Sumsets 【动态规划】
点击打开题目 Sumsets Time Limit: 2000MS   Memory Limit: 200000K Total Submissions: 13291   Accepted: 5324 Description Far...
925 0
线段树-poj-2823
Sliding Window Description An array of size n ≤ 106 is given to you. There is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k
1083 0