【拓扑排序】【堆】CH Round #57 - Story of the OI Class 查错
拓扑排序,要让字典序最小,所以把栈改成堆。
1 #include<cstdio> 2 #include<queue> 3 #include<algorithm> 4 using namespace std; 5 #define N 100001 6 priority_queue<int,vector<int>,greater<int> >Q; 7 int n,m,x,y; 8 int v[N],first[N],next[N],en,ru[N],tot,ans[N]; 9 void AddEdge(const int &U,const int &V) 10 { 11 v[++en]=V; 12 next[en]=first[U]; 13 first[U]=en; 14 } 15 int main() 16 { 17 scanf("%d%d",&n,&m); 18 for(int i=1;i<=m;i++) 19 { 20 scanf("%d%d",&x,&y); 21 ru[y]++; 22 AddEdge(x,y); 23 } 24 for(int i=1;i<=n;i++) if(!ru[i]) Q.push(i); 25 while(!Q.empty()) 26 { 27 int last=tot; 28 ans[++tot]=Q.top(); Q.pop(); 29 for(int i=first[ans[tot]];i;i=next[i]) 30 { 31 ru[v[i]]--; 32 if(!ru[v[i]]) Q.push(v[i]); 33 } 34 } 35 if(tot!=n) puts("OMG."); 36 else 37 { 38 for(int i=1;i<n;i++) 39 printf("%d ",ans[i]); 40 printf("%d\n",ans[n]); 41 } 42 return 0; 43 }
转载于:https://www.cnblogs.com/autsky-jadek/p/4068343.html
【拓扑排序】【堆】CH Round #57 - Story of the OI Class 查错相关推荐
- BZOJ3832: [Poi2014]Rally(拓扑排序 堆)
题意 题目链接 Sol 最直观的思路是求出删除每个点后的最长路,我们考虑这玩意儿怎么求 设\(f[i]\)表示以\(i\)结尾的最长路长度,\(g[i]\)表示以\(i\)开始的最长路长度 根据DAG ...
- bzoj 2535: [Noi2010]Plane 航空管制2【拓扑排序+堆】
有个容易混的概念就是第一问的答案不是k[i]字典序最小即可,是要求k[i]大的尽量靠后,因为这里前面选的时候是对后面有影响的(比如两条链a->b c->d,ka=4,kb=2,kc=3,k ...
- 拓扑排序 Codeforces Round #290 (Div. 2) C. Fox And Names
题目传送门 1 /* 2 给出n个字符串,求是否有一个"字典序"使得n个字符串是从小到大排序 3 拓扑排序 4 详细解释:http://www.2cto.com/kf/201502 ...
- 拓扑排序 Codeforces Round #748 (Div. 3)E. Gardener and Tree
由于最近做了很多关于树的题目,突然想起来之前有一道题意很简单的拓扑排序的题目,索性一块写了. 题意:给出一棵树,总共k次操作,每次操作删除叶子节点,问k次操作后总共还剩余多少节点. 难点:如可判断操作 ...
- Codeforces Round #748 (Div. 3) E. Gardener and Tree(拓扑排序)
linkk 题意: 给一棵树nnn个节点,每次删掉所有的叶子,操作kkk次,求剩下的节点数 思路: 拓扑排序,每次将度数<=1<=1<=1的点放入队列,并且维护操作的次数.对于队列中 ...
- [NOIP2017]逛公园 最短路+拓扑排序+dp
题目描述 给出一张 $n$ 个点 $m$ 条边的有向图,边权为非负整数.求满足路径长度小于等于 $1$ 到 $n$ 最短路 $+k$ 的 $1$ 到 $n$ 的路径条数模 $p$ ,如果有无数条则输出 ...
- CodeForces 1213F (强联通分量分解+拓扑排序)
传送门 •题意 给你两个数组 p,q ,分别存放 1~n 的某个全排列: 让你根据这两个数组构造一个字符串 S,要求: (1)$\forall i \in [1,n-1],S_{pi}\leq S _ ...
- 「BZOJ2200」[Usaco2011 Jan] 道路和航线 - 最短路+拓扑排序
->点我进原题 [Usaco2011 Jan]道路和航线 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 1116 Solved: 410 Des ...
- hdu 1811Rank of Tetris (并查集 + 拓扑排序)
1 /* 2 题意:这些信息可能有三种情况,分别是"A > B","A = B","A < B",分别表示A的Rating高于B ...
最新文章
- python3 turtle_最新版Python 3.8.6 版本发布,跨界程序员零压力学Python之道!(附下载)...
- linux进程下的线程数,Linux下查看进程线程数的方法
- WebStack-Hugo | 一个静态响应式网址导航主题
- WPF ListView DoubleClick
- JDBC连接mysql数据库操作
- ios学习笔记block回调的应用(一个简单的例子)
- getset原子性 redis_一文看透 Redis 分布式锁进化史(解读 + 缺陷分析)
- 2016重庆计算机一级考试题型,重庆计算机一级考试真题2016年最新(笔试+上机)
- 注册域名需要资格吗_域名对于企业商标注册的重要性你知道吗?
- 服务器设计笔记(1)-----消息的封装
- php 如何区分0和false,php中怎么区别false与0
- 没有权限角色管理功能菜单加载
- 北京房租大涨?Python帮你揭穿真相
- Latex下载和使用
- 刘慈欣计算机预测未来的小说,科幻作家都是“神预测”?刘慈欣等现身说法
- 传奇GEE引擎版本架设
- 2018.07.18【2018提高组】模拟C组
- 获取已安装或未安装的apk签名
- html5英文参考文献,外文参考文献引用常识介绍
- 使用CAS框架快速实现单点登录
热门文章
- python的列表的remove()方法、判断if xxx in xx条件比较耗时问题
- JS中的let和var的区别
- mybatis中缓存的设计与原理
- Qt Model/View 学习笔记 (四)
- 如何提升研发人员的非技术才能
- Drawer的使用(一):xml文件中使用
- luoguP2657 [SCOI2009]windy数
- 基于SpringMVC下的Rest服务框架搭建【1、集成Swagger】
- BZOJ 1009 [HNOI2008]GT考试
- C#编译器选项(目标平台)