POJ 1456 Supermarket

Posted evenbao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 1456 Supermarket相关的知识,希望对你有一定的参考价值。

【题目链接】

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

【算法】

           贪心 + 堆

【代码】

          

#include <algorithm>
#include <bitset>
#include <cctype>
#include <cerrno>
#include <clocale>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <limits>
#include <list>
#include <map>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <utility>
#include <vector>
#include <cwchar>
#include <cwctype>
#include <stack>
#include <limits.h>
using namespace std;
#define MAXN 10010

struct info
{
        int p,d;
} a[MAXN];

int i,n,ans;
priority_queue< int,vector<int>,greater<int> > q;

inline bool cmp(info a,info b)
{
        return a.d < b.d;
}

int main() 
{
        
        while (scanf("%d",&n) != EOF)
        {
                ans = 0;
                while (!q.empty()) q.pop();
                for (i = 1; i <= n; i++) scanf("%d%d",&a[i].p,&a[i].d);
                sort(a+1,a+n+1,cmp);
                for (i = 1; i <= n; i++)
                {
                        if (q.size() < a[i].d) q.push(a[i].p);
                        else if (a[i].p > q.top()) 
                        {
                                q.pop();
                                q.push(a[i].p);
                        }
                }
                while (!q.empty())
                {
                        ans += q.top();
                        q.pop();
                }
                printf("%d
",ans);
        }
        
        return 0;
    
}

 

以上是关于POJ 1456 Supermarket的主要内容,如果未能解决你的问题,请参考以下文章

poj1456Supermarket——并查集压缩查找

POJ-1456 Supermarket贪心+并查集

POJ1456 Supermarket

[POJ1456]Supermarket(贪心 + 优先队列 || 并查集)

POJ1456:Supermarket(并查集+贪心)

nyoj 208 + poj 1456 Supermarket (贪心)