2016年8月22日 星期一

POJ 1456 Supermarket

POJ 1456 Supermarket

題目概述:
給n個物品,每個物品有它的價值跟他賣出的deadline,每日只能賣出一樣東西,求賣出總合最大值。

思路:
從最後的期限一個時間一個時間貪心的賣出最大價值的東西。
POJ 不能用#include<bits/stdc++.h> QQ

AC code:
//By SCJ
#include<iostream>
#include<queue>
using namespace std;
#define endl '\n'
vector<int> v[10001];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
   int n;
   while(cin>>n)
   {
       for(int i=1;i<=n;++i)
       {
           int a,b;cin>>a>>b;
           v[b].push_back(a);
       }
       priority_queue<int> pq;
       int ans=0;
       for(int i=10000;i>=1;--i)
       {
           for(int k=0;k<v[i].size();++k) pq.push(v[i][k]);
           if(pq.size()){ans+=pq.top();pq.pop();}
           v[i].clear();
       }
       cout<<ans<<endl;
   }
}

沒有留言:

張貼留言