[HNOI2003]操作系统,洛谷之提高历练地,堆

原创 2018年04月16日 10:55:04

正题

      第二题:[HNOI2003]操作系统

      我们看到了“优先级最高”这几个字,我们就想到了用堆来维护

bool operator<(const node y)const{
	if(rank==y.rank) return begin>y.begin;
	return rank<y.rank;
} 

我们这样就可以来维护优先级高的在前面先做,优先级一样高的先做到达时间早的!!

       每次来一个元素,我们看一下能把前面一个元素先做完,如果可以,那么就做完它;否则,无论是否优先级高还是低,加入队列,在判断先做哪个,,这样思路就会很明了,后面过一遍把每个都做一遍即可。

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;

struct node{
	int x,begin,last,rank;
	bool operator<(const node y)const{
		if(rank==y.rank) return begin>y.begin;
		return rank<y.rank;
	}
};
priority_queue<node>f;

int main(){
	int a,b,c,d;
	int now=0;
	while(scanf("%d %d %d %d",&a,&b,&c,&d)!=EOF){
		while(!f.empty()){
			node tp=f.top();
			f.pop();
			if(now+tp.last<=b){
				now+=tp.last;
				printf("%d %d\n",tp.x,now);
			}
			else {
				tp.last-=b-now;
				now=b;
				f.push(tp);
				break;
			}
		}
		f.push((node){a,b,c,d});
		now=b;
	}
	while(!f.empty()){
		node tp=f.top();
		f.pop();
		now+=tp.last;
		printf("%d %d\n",tp.x,now);
	}
}

版权声明: https://blog.csdn.net/Deep_Kevin/article/details/79957664

SuperGCD,洛谷之提高历练地,数论(3-5)

前话      数论就是研究整数的理论。包括公约公倍数、质数、欧拉定理和同余方程等。正文       其实数论不止那么简单正文      第一题:SuperGCD      这一题就是很烦的代码加很烦...
  • Deep_Kevin
  • Deep_Kevin
  • 2018-04-07 17:19:43
  • 11

[SDOI2009]E&D,洛谷之提高历练地,博弈论(3-6)

正题      第四题:[SDOI2009]E&amp;amp;D      这题不是如此的简单,因为它要涉及到找规律和Sg函数。      首先的,我们可以打一个表来观察之间的关系。      Sg...
  • Deep_Kevin
  • Deep_Kevin
  • 2018-04-08 13:48:45
  • 13

种树,洛谷之提高历练地,堆

正题      第五题:种树      这题看上去很烦,实际上也很烦。。。      那么我们第一个想到的就是用堆维护最大值。      我们把多步拆成多个一步来求解,当k=1的时候,那么答案就是最大...
  • Deep_Kevin
  • Deep_Kevin
  • 2018-04-16 11:42:57
  • 4

序列合并,洛谷之提高历练地,堆

正文      第三题:序列合并      我们很容易就可以得到一个结论,将A,B从小到大排序后,可以满足A1+B1&amp;lt;=A1+B2&amp;lt;=A1+B3...      我们也可以...
  • Deep_Kevin
  • Deep_Kevin
  • 2018-04-16 11:18:09
  • 21

[POI2008]BLO-Blockade,洛谷之提高历练地,强连通分量

正题      [POI2008]BLO-Blockade      这一题很神奇啊~      我们来想想两个点不能连通和强连通有什么关系。      那么其实很明显,如果当前点所遍历到的子节点不能...
  • Deep_Kevin
  • Deep_Kevin
  • 2018-04-22 14:24:13
  • 5

食物链,洛谷之提高历练地,并查集

正文      第二题:食物链      这题经典啊!!!我们可以想象,如果我们可以搞一个并查集来维护x的同伙,天敌和食物就好了。      我们想到了开三倍空间来维护x的天敌,同伙和食物。     ...
  • Deep_Kevin
  • Deep_Kevin
  • 2018-04-15 15:57:03
  • 15

无线通讯网,洛谷之提高历练地,最小生成树

正题      第三题:无线通讯网      这题中的卫星电话,就指的是可以把原图分成S个联通块后,就可以互相联通。      那我们要把原图分成S个联通块,那么我们只需要选中P-S条最短的边(当然是...
  • Deep_Kevin
  • Deep_Kevin
  • 2018-04-11 09:28:35
  • 4

货车运输,洛谷之提高历练地,倍增

正题       第一题:货车运输       这道题很经典啊~~       直接建立倍增关系式求LCA即可。       不妨设i的第2^j个爸爸是f[i][j],而这条路径上的最小值设为mmin...
  • Deep_Kevin
  • Deep_Kevin
  • 2018-04-20 11:48:01
  • 9

跑路,洛谷之提高历练地,倍增

正题      跑路      这题看上去好像无从下手,又有重边,又有自环,但是想一想,其实都是一样的。      我们可不可以先处理一下一步可以到达的边,当然,一步可以到达当且仅当i到j的路径长度为...
  • Deep_Kevin
  • Deep_Kevin
  • 2018-04-20 14:51:22
  • 12

独木桥,洛谷之提高历练地,神奇的解法

正题      这题很搞笑啊~~      下面是转载洛谷 I_am_wx的题解。      你在桥上看风景,看风景的人在轰炸机上看着你。      首先自行脑补一下,假装你正在20000米高空的轰炸...
  • Deep_Kevin
  • Deep_Kevin
  • 2018-04-20 07:39:54
  • 2
收藏助手
不良信息举报
您举报文章:[HNOI2003]操作系统,洛谷之提高历练地,堆
举报原因:
原因补充:

(最多只允许输入30个字)