51nod 1163 最高的奖励
来源:互联网 发布:工作照软件 编辑:程序博客网 时间:2024/05/20 10:12
先建一个优先队列,小根堆,然后按照任务的时间升序排序,然后从头开始扫,如果当前的时间没有超过任务的最晚结束时间,就把任务扔到优先队列里,然后继续扫,当扫到某个任务,发现他的最晚结束时间已经过去了,就从优先队列里出来一个最小的,他俩比较,如果当前的任务获得的奖励更高,就把队列里的那个之前的任务替换掉。这样扫完,队列里的任务就是获得奖励最高的任务了。然后加和就好了。
#include <bits/stdc++.h>using namespace std;const int MAXN = 50010;pair<int,int> task[MAXN];priority_queue<int,vector<int>,greater<int>> que;int n;int main(){ ios::sync_with_stdio(false); cin >> n; for(int i = 0; i < n; ++i) cin >> task[i].first >> task[i].second; sort(task,task+n); for(int i = 0; i < n; ++i) { if(que.size() < task[i].first) que.push(task[i].second); else if(task[i].second > que.top()) { que.pop(); que.push(task[i].second); } } long long res = 0; while(!que.empty()) { res += que.top(); que.pop(); } cout << res <<endl;}
阅读全文
0 0
- 51NOD 1163 最高的奖励
- 51nod 1163 最高的奖励(贪心)
- 51nod 1163 最高的奖励
- 51nod-【1163 最高的奖励】
- 51nod 1163 最高的奖励【贪心】
- 51Nod 1163 最高的奖励
- 51nod-1163 最高的奖励(贪心)
- 51nod 1163 最高的奖励 贪心
- 51Nod 1163 最高的奖励 ( 贪心
- 51nod 1163 最高的奖励
- 水题:51Nod 1163-最高的奖励
- 51nod 1163 最高的奖励
- 51nod 1163 最高的奖励
- 51nod 1163 最高的奖励
- 51nod 1163 最高的奖励
- 1163 最高的奖励-51Nod
- 51nod 1163 最高的奖励(贪心)
- 51nod 1163 最高的奖励
- java设计模式--单例模式
- 【论文笔记】 R2CNN: Rotational Region CNN for Orientation Robust Scene Text Detection
- Linux crontab 命令用法
- Arcgis for Android离线数据下载
- 原根
- 51nod 1163 最高的奖励
- java-菱形实现
- 1. 打印100~200 之间的素数 2. 输出乘法口诀表 3. 判断1000年---2000年之间的闰年
- 牛客网SQL实战练习(1)
- RMQ模板
- CentOS使用nmcli配置网络
- Segmentation fault (Core dumped)
- hdu 1387 Team Queue
- superset和kylin搭配查不出数据的处理