NYIST 1107 最高的奖励
2014-10-25 14:53
176 查看
最高的奖励
时间限制:1000 ms | 内存限制:65535 KB难度:3
描述
请问:挖掘机技术哪家强?AC了告诉你!
给你N(N<=3*10^4)个任务,每个任务有一个截止完成时间t(1=<t<=10^9)和完成该任务的奖励v(1=<v<=10^9),每个任务要花一天完成,问最多能获得多少奖励?
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <climits> #include <vector> #include <queue> #include <cstdlib> #include <string> #include <set> #include <stack> #define LL long long #define INF 0x3f3f3f3f #define pii pair<int,int> using namespace std; const int maxn = 100000; pii d[maxn]; int main(){ int n,u,v; priority_queue< pii,vector< pii >,greater< pii > > q; while(~scanf("%d",&n)){ LL ans = 0; while(!q.empty()) q.pop(); for(int i = 0; i < n; ++i) scanf("%d %d",&d[i].first,&d[i].second); sort(d,d+n); for(int i = 0; i < n; ++i){ if(q.size() < d[i].first){ ans += d[i].second; q.push(make_pair(d[i].second,d[i].first)); }else if(q.size() == d[i].first){ if(d[i].second > q.top().first){ ans += d[i].second - q.top().first; q.pop(); q.push(make_pair(d[i].second,d[i].first)); } } } printf("%lld\n",ans); } return 0; }
View Code
相关文章推荐
- NYOJ 1107 最高的奖励(贪心+优先队列)
- NYOJ 1107 最高的奖励 【贪心】+【路径压缩】
- 1123: 最高的奖励
- 51nod 1163 最高的奖励 【贪心 ,并查集】
- 51nod 1164 最高的奖励 V2 贪心+匈牙利算法
- 51Nod 1163 最高的奖励 并查集&贪心
- 51nod 1163 最高的奖励【贪心+优先队列】
- AC日记——最高奖励 51nod 1163
- 【51nod】1164 最高的奖励 V2
- 51Nod 1163 最高的奖励(贪心+优先队列/并查集合)
- 51Nod-1163-最高的奖励
- 最高的奖励
- 最高的奖励
- 51nod 1163-最高的奖励
- 51nod1163 最高的奖励
- 51nod 1163 最高的奖励
- 山东金改:对上市企业最高奖励300万元
- 最高的奖励 【贪心】
- nyoj 1 1 0 7 最高奖励
- 1163 最高的奖励