题目链接

BZOJ2535

题解

航班之间的关系形成了一个拓扑图
而且航班若要合法,应尽量早出发
所以我们逆拓扑序选点,能在后面出发的尽量后面出发,不会使其它点变得更劣,容易知是正确的

第二问只需枚举航班\(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;
}

转载于:https://www.cnblogs.com/Mychael/p/9018305.html

BZOJ2535 [Noi2010]Plane 航空管制 【贪心 + 堆】相关推荐

  1. BZOJ2535: [Noi2010]Plane 航空管制2(拓扑排序 贪心)

    题意 题目链接 Sol 非常妙的一道题. 首先不难想到拓扑排序,但是直接对原图按\(k\)从小到大拓扑排序是错的.因为当前的\(k\)大并不意味着后面的点\(k\)也大 但是在反图上按\(k\)从大到 ...

  2. BZOJ2535: [Noi2010]Plane 航空管制2

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2535 把图反向,拓扑排序一下,用并查集维护当前权值能放置的最大位置.对于第二问,就相当于我把点 ...

  3. bzoj 2109: [Noi2010]Plane 航空管制

    Description 世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频 发生.最近,小X就因为航空管制,连续两次在机场被延误超过了两小时.对此, 小X表示很不满意. 在这次来烟台的 ...

  4. bzoj 2535: [Noi2010]Plane 航空管制2【拓扑排序+堆】

    有个容易混的概念就是第一问的答案不是k[i]字典序最小即可,是要求k[i]大的尽量靠后,因为这里前面选的时候是对后面有影响的(比如两条链a->b c->d,ka=4,kb=2,kc=3,k ...

  5. [NOI2010]航空管制(拓扑排序+贪心)

    题目描述 世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频发生.最近,小X就因为航空管制,连续两次在机场被延误超过了两小时.对此,小X表示很不满意. 在这次来烟台的路上,小X不幸又一 ...

  6. BZOJ 2535:NOI 2010 航空管制

    [NOI2010]航空管制 题面请点上面. 首先第一问,我第一想法是把它放到一个小根堆中,然而这是不行的. 正确的思路是,把图反过来建,然后放到一个大根堆里去. 至于原因,感性理解一下,正着贪是有后效 ...

  7. BZOJ-2535 航空管制 toposort

    题目传送门 题解: 如果正着连边,可以发现最困难的点是ti不好处理. 所以我们连反边,然后将ti转换成前面有n-ti+1架飞机起飞了作为限制条件. 对于第一问,直接toposort 然后反着输出求出的 ...

  8. POJ - 1456 贪心 堆常用操作 注意细节

    题意:给定n个商品的deadline和profit,求每天卖一件的情况下的最大获利 显然是一道贪心 按deadline从小到大排序好,动态维护小根(profit)堆的大小<=当前deadline ...

  9. AT3957-[AGC023F]01 on Tree【贪心,堆】

    正题 题目链接:https://www.luogu.com.cn/problem/AT3957 题目大意 nnn个节点的一棵树,每个节点有0/10/10/1.每次删除一个根节点,然后把该节点的值填入序 ...

最新文章

  1. python使用np.linspace函数生成均匀的浮点数列表实战:生成浮点数列表、生成浮点数列表(指定是否包含末尾值)
  2. 树莓派保卫战--防止SSH暴力破解
  3. 规范化的递归转换成非递归
  4. Vue creatElement
  5. pythonsuper_python中的super()是什么意思呢
  6. mysql怎么用游标修改数据,如何使用mysql 游标?
  7. 【小白学PyTorch】7.最新版本torchvision.transforms常用API翻译与讲解
  8. Fragment销毁时replace和add两个方法的区别
  9. PHP的pm、pm.max_requests、memory_limit
  10. shell编程-变量
  11. js设置控制滚动条位置
  12. Kubernetes-Pod/ReplicaSet/Deployment/Service关系(二十一)
  13. 正则表达式符号解释1
  14. go 如何将int设成nil_Go 中没有引用传递?
  15. 如何解决sqlserver 2005 备份的时候无法选择除系统盘外的其他盘符?
  16. android ip地址扫描,如何准确扫描Android中连接到wifi的所有设备的IP和Mac地址?
  17. 【python爬虫专项(23)】利用Selenium实现网页账号登录(以豆瓣网为例)
  18. R |数据分析中缺失值处理
  19. QT 按钮切换背景图片
  20. iOS使用第三方AppleID账号

热门文章

  1. RHEL 6.6安装桌面环境GNOME
  2. ubuntu declare
  3. 今天开始写技术博客啦
  4. [GXOI/GZOI2019]旧词——树链剖分+线段树
  5. Desktop: ERROR: Cannot set priority of namenode process 35122
  6. flink的分桶策略BucketAssigner与hive的分区的对应关系
  7. 关于对Caffe适用场景的思考
  8. Master PDF editor在ubuntu下面的配置
  9. python2.7删除所有非utf-8编码的字符串
  10. php程序包括什么,php程序是什么