题目:

约翰有太多的工作要做。为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单位时间。
他的工作日从0时刻开始,有109 个单位时间。在任一时刻,他都可以选择编号1~N的N(1 <= N <= 106)项工作中的任意一项工作来完成。
因为他在每个单位时间里只能做一个工作,而每项工作又有一个截止日期,所以他很难有时间完成所有N个工作,虽然还是有可能。 对于第i个工作,有一个截止时间D_i(1 <= D_i <= 10^9),
如果他可以完成这个工作,那么他可以获利P_i( 1<=P_i<=10^9 ). 在给定的工作利润和截止时间下,约翰能够获得的利润最大为多少.

输入格式

  • Line 1: A single integer: N

  • Lines 2…N+1: Line i+1 contains two space-separated integers: D_i and P_i

输出格式

  • Line 1: A single number on a line by itself that is the maximum possible profit FJ can earn.

思路看图解:


/*  算法实现
3
2 10
1 5
1 7 排序:
1 5
1 7
2 10|       ||      ||      | |     |
1 |__5__||      ||      ||      | |     |
1 |_7___|<<--因为在结束时间相同之前,取7划算,取出5放入7|       ||      ||      |
2 | 10  |2比1大所以放入顶部
1 |__5__|*/
//使用优先队列
#include<bits/stdc++.h>
using namespace std;
#include<queue>
#include<vector>
priority_queue<int,vector<int>,greater<int> > a;//从小到大,头部小
struct asd{int di,pi;
}b[100005];
bool comp(struct asd x,struct asd y){return x.di<y.di;
}
int main(){int n;cin>>n;for(int i=0;i<n;i++){cin>>b[i].di>>b[i].pi;}     sort(b,b+n,comp);long long ans=0;for(int i=0;i<n;i++){if(b[i].di<=a.size()){//表示第i个时间和之前冲突 ,因为同一时间只能存在一个,所以元素个数可以代替存在的时间最大值if(b[i].pi>a.top()){//在上一基础上,i的pi大于a顶部的,交换 ans-=a.top();ans+=b[i].pi;a.pop();a.push(b[i].pi); } }else{//如果时间不冲突,直接放入ans+=b[i].pi;a.push(b[i].pi);}}cout<<ans<<endl;return 0;
}

洛谷——P2949工作调度Work Scheduling相关推荐

  1. 题解 P2949 【[USACO09OPEN]工作调度Work Scheduling】

    P2949 [USACO09OPEN]工作调度Work Scheduling 题目标签是单调队列+dp,萌新太弱不会 明显的一道贪心题,考虑排序先做截止时间早的,但我们发现后面可能会出现价值更高却没有 ...

  2. [洛谷P3262]战争调度

    题目 传送门 to luogu 思路 编程要从娃娃抓起,dp\tt{dp}dp 要从叶节点搞起. 毕竟 每个叶节点之间是相互独立的,并且贡献只与其祖先("祖先"不包括自己,下同)有 ...

  3. 深入理解 操作系统 SJF算法(以洛谷P1223题为例)

    CPU Scheduling Algorithms 重要的CPU调度算法如下: FCFS Scheduling(First-Come, First-Served) SJF Scheduling(Sho ...

  4. 洛谷P1816 忠诚 题解

    洛谷P1816 忠诚 题解 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人 ...

  5. 洛谷1042 乒乓球 解题报告

    洛谷1042 乒乓球 本题地址: http://www.luogu.org/problem/show?pid=1042 题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球 ...

  6. 洛谷P1246C语言,codevs1246 丑数

    题目描述 Description 对于一给定的素数集合 S = {p1, p2, ..., pK}, 来考虑那些质因数全部属于S 的数的集合.这个集合包括,p1, p1p2, p1p1, 和 p1p2 ...

  7. 拓扑排序——杂物(洛谷 P1113)

    题目选自洛谷P1113 把每个任务看作一个结点,如果两个任务x和y满足x是y的准备工作,那么在x和y之间连一条有向边. 由于互相没有关系的杂物可以同时工作,所以可以发现所有杂物都被完成的最短时间只取决 ...

  8. 二分答案——砍树(洛谷 P1873)

    题目选自洛谷P1873 分析:如果句子非常低,可以收集到的木材会更多,以至于超过需要的数量.随着砍树高度逐渐增大,获得的木材会逐渐减少.砍树高度增加到一定程度时,收集到的木材就会开始不够用.因此需要找 ...

  9. 排序——分数线划定(洛谷 P1068)

    题目选自洛谷P1068 这里不再讲述各种基本排序实现,如想了解可以参考我之前的算法里的几种排序算法知识点. 主要讲述在竞赛过程中,我们如何将排序算法运用到解题当中来,一般情况下,需要用到排序的时候,我 ...

最新文章

  1. 顶一下吧﹗成功配置Samba3.0为域登录和文件服务器的方法!!! [转]
  2. 新360自媒体:北京时间自媒体平台即将上线!
  3. 吴恩达团队发起X射线AI诊断竞赛,这家中国公司登上了榜首
  4. 列表控件ListCtrl的使用
  5. 京东发布农民丰收节交易会大数据 互联网谋定现代农业
  6. 管理active directiory中的用户和计算机管理磁盘,IP多播桌面视频会议系统媒体流管理与安全机制的分析.pdf...
  7. python find(urlopen.read())_Python小白必看之urlopen()详解
  8. MySql数据库索引底层数据结构
  9. 如何使用trace模式运行BRF+应用
  10. c语言如何输出无限小数,printf的格式控制(C语言)
  11. 计算机系统组装 维护常用工具及其作用,《计算机系统组装维护》课程实用标准.doc...
  12. Flink 学习(一)
  13. 95-134-116-源码-维表-kafka维表关联:广播方式
  14. Java中Date日期以及日期格式化
  15. Caused by: java.sql.SQLException: Unable to open a test connection to the given database报错无法打开到给定数据库
  16. 常用单片机和开发板的引脚功能图
  17. 武汉大学:最美大学最美网络
  18. 学画画软件app推荐_绘画APP推荐|很全的学画画的APP推荐
  19. 基于SpringBoot的QQ邮箱登录注册
  20. C++STL accumulate函数

热门文章

  1. 《数字经济全景白皮书》中国银行业场景金融生态建设分析2022 发布
  2. [BZOJ3231] [Sdoi2008]递归数列
  3. oracle卸载的步骤,Oracle卸载步骤(Windows)
  4. SLAM让你如何去理解这个世界
  5. Android 闹钟 源码
  6. 泰山OFFICE技术讲座:奇怪的Times New Roman字体的高度
  7. mmall商城分类模块总结
  8. 索赔激进分子和针对贝佐斯的间谍软件贸易在增长
  9. Android自学笔记 第四天(下)
  10. 数据库查询优化——Mysql索引