BZOJ2535 [Noi2010]Plane 航空管制 【贪心 + 堆】
题目链接
题解
航班之间的关系形成了一个拓扑图
而且航班若要合法,应尽量早出发
所以我们逆拓扑序选点,能在后面出发的尽量后面出发,不会使其它点变得更劣,容易知是正确的
第二问只需枚举航班\(x\),拓扑排序时忽视\(x\),最后无法选点时就是\(x\)最早的时间
#include<iostream>
#include<cstdio>
#include<cmath>
#include<queue>
#include<map>
#include<cstring>
#include<algorithm>
#define LL long long int
#define Redge(u) for (register int k = h[u],to; k; k = ed[k].nxt)
#define REP(i,n) for (register int i = 1; i <= (n); i++)
#define res register
#define mp(a,b) make_pair<int,int>(a,b)
#define cp pair<int,int>
using namespace std;
const int maxn = 2005,maxm = 20005,INF = 1000000000;
inline int read(){
	res int out = 0,flag = 1; res char c = getchar();
	while (c < 48 || c > 57){if (c == '-') flag = -1; c = getchar();}
	while (c >= 48 && c <= 57){out = (out << 3) + (out << 1) + c - 48; c = getchar();}
	return out * flag;
}
int n,m,inde[maxn],K[maxn],val[maxn],ans[maxn];
int h[maxn],ne;
struct EDGE{int to,nxt;}ed[maxm];
inline void build(int u,int v){
	ed[++ne] = (EDGE){v,h[u]}; h[u] = ne;
	inde[v]++;
}
priority_queue<cp> q;
inline void solve1(){
	REP(i,n){
		val[i] = inde[i];
		if (!val[i]) q.push(mp(K[i],i));
	}
	cp u;
	for (int i = n; i; i--){
		u = q.top(); q.pop();
		ans[i] = u.second;
		Redge(u.second){
			if (!(--val[to = ed[k].to])) q.push(mp(K[to],to));
		}
	}
	REP(i,n){
		printf("%d",ans[i]);
		if (i < n) putchar(' ');
	}puts("");
}
inline int solve2(int x){
	while (!q.empty()) q.pop();
	REP(j,n) val[j] = inde[j]; val[x] = n;
	REP(j,n) if (!val[j]) q.push(mp(K[j],j));
	cp u;
	for (res int j = n; j; j--){
		if (q.empty()) return j;
		u = q.top(); q.pop();
		if (u.first < j) return j;
		Redge(u.second) if (!(--val[to = ed[k].to])) q.push(mp(K[to],to));
	}
	return 1;
}
int main(){
	n = read(); m = read();
	REP(i,n) K[i] = read();
	int a,b;
	REP(i,m) {
		a = read(); b = read();
		build(b,a);
	}
	solve1();
	REP(i,n) printf("%d ",solve2(i));
	return 0;
}
BZOJ2535 [Noi2010]Plane 航空管制 【贪心 + 堆】的更多相关文章
- BZOJ2535 [Noi2010]Plane 航空管制2
		Description 世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频发生.最近,小X就因为航空管制,连续两次在机场被延误超过了两小时.对此,小X表示很不满意. 在这次来烟台的路上 ... 
- BZOJ2535: [Noi2010]Plane 航空管制2(拓扑排序 贪心)
		题意 题目链接 Sol 非常妙的一道题. 首先不难想到拓扑排序,但是直接对原图按\(k\)从小到大拓扑排序是错的.因为当前的\(k\)大并不意味着后面的点\(k\)也大 但是在反图上按\(k\)从大到 ... 
- bzoj 2535 && bzoj 2109 [Noi2010]Plane 航空管制——贪心
		题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2535 https://www.lydsy.com/JudgeOnline/problem.p ... 
- bzoj 2109: [Noi2010]Plane 航空管制
		Description 世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频 发生.最近,小X就因为航空管制,连续两次在机场被延误超过了两小时.对此, 小X表示很不满意. 在这次来烟台的 ... 
- 2109&2535: [Noi2010]Plane 航空管制 - BZOJ
		Description世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频发生.最近,小X就因为航空管制,连续两次在机场被延误超过了两小时.对此,小X表示很不满意. 在这次来烟台的路上, ... 
- BZOJ 2535: [Noi2010]Plane 航空管制2
		Description 世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频发生.最近,小X就因为航空管制,连续两次在机场被延误超过了两小时.对此,小X表示很不满意. 在这次来烟台的路上 ... 
- BZOJ2109: [Noi2010]Plane 航空管制
		Description 世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频 发生.最近,小X就因为航空管制,连续两次在机场被延误超过了两小时.对此, 小X表示很不满意. 在这次来烟台的 ... 
- bzoj 2535: [Noi2010]Plane 航空管制2【拓扑排序+堆】
		有个容易混的概念就是第一问的答案不是k[i]字典序最小即可,是要求k[i]大的尽量靠后,因为这里前面选的时候是对后面有影响的(比如两条链a->b c->d,ka=4,kb=2,kc=3,k ... 
- [BZOJ2109][NOI2010]航空管制(贪心+拓扑)
		2109: [Noi2010]Plane 航空管制 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1227 Solved: 510[Submit][ ... 
随机推荐
- c++学习(一)
			基本数据类型 类型 关键字 描述 所占字节数 最大值 最小值 布尔型 bool 存储值 true 或 false bool 1 0 字符型 char 通常是一个八位字节(一个字符).这是一个整数类型 ... 
- LunaSchedule记录
			博客访问量突破10000!!!(值得高兴一下 用一学期超级课程表,被50+M的内存占用,巨慢的加载速度给弄烦了,就自己开发了一款课程表管理程式 添加日历订阅,自动导入到系统日历,无需安装任何app L ... 
- linux系统ext文件系统知识
			ext2文件系统细节 我们都知道,操作系统中的数据分为文件内容和文件属性两部分,其中文件内容就是文件的实体数据,而文件属性就是文件类型.权限.属主.修改时间等信息.操作系统会将上述文件的内容放入磁盘文 ... 
- 近年来爆发的CVE漏洞编号
			1.Office漏洞 Office漏洞是大部分APT组织最喜爱的漏洞,Office在个人办公电脑使用量大,对针对性目标是最佳的外网入口,效果也是最直接的. CVE编号 漏洞类型 使用组织 CVE-2 ... 
- PHP常用180函数总结
			数学函数 1.abs(): 求绝对值 <span style="font-size: 14px;">$abs = abs(-4.2); //4.2<br>& ... 
- libvirt笔记(未完待续)
			参考源地址:http://libvirt.org/formatdomain.html http://blog.csdn.net/qq250941970/article/details/6022094 ... 
- laravel查看执行的sql语句
			方法一: 我们有时候想测试一段代码生产的 SQL 语句,比如: 我们想看 App\User::all(); 产生的 SQL 语句,我们简单在 routes.php 做个实验即可: //app/Http ... 
- 【yii】【php】自定义故障代码
			实际状态码: 200 操作成功 406 账号密码错误 208 请勿重复操作 401 需登陆验证 405 不容许此方法 409 验证错误 
- POJ:3126-Prime Path
			题目链接:http://poj.org/problem?id=3126 Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submiss ... 
- 笔记-python-redis接口
			笔记-python-redis接口 1. python 与redis接口 redis是redis数据库的python接口包,为python提供的redis的调用接口. 注:文档内容主要基于h ... 
