![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论--拓扑排序
focus_best
这个作者很懒,什么都没留下…
展开
-
拓扑排序
拓扑排序对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。一个有向图无法拓扑排序时只有一种情况:该有向图中存在环.刘汝佳入门经典P111中给出了拓扑排序的代码,其中关键点在于状态数组C[i]的使用.代码如下,具体细节自己体会:原创 2014-06-12 20:53:50 · 965 阅读 · 0 评论 -
HDU 1811 Rank of Tetris(并查集+拓扑排序)
HDU 1811 Rank of Tetris(并查集+拓扑排序)http://acm.hdu.edu.cn/showproblem.php?pid=1811题意:给你N个点(编号从0到N-1)和M个关系,要你判断这个图的所有点的顺序是否可以全部确定.不过对于任意点的关系可能存在A>B或AB编号,那么A分数大).分析:输出结果有三种情况:缺少信息(即可拓扑排序),OK(能全排列),冲突原创 2014-06-14 17:02:34 · 2109 阅读 · 1 评论 -
HDU 3342 Legal or Not(简单拓扑排序判定)
HDU 3342 Legal or Not(简单拓扑排序)http://acm.hdu.edu.cn/showproblem.php?pid=3342题意:给你一个N点和M条有向边的图,问你该图是否可拓扑排序.分析:没什么可说的,直接用topo()函数判断所给的有向图是否可拓扑排序即可.AC代码:#include#include#include#includeusing原创 2014-06-14 12:14:52 · 2279 阅读 · 0 评论 -
HDU 1285 确定比赛名次(简单拓扑排序)
HDU 1285 确定比赛名次(简单拓扑排序)http://acm.hdu.edu.cn/showproblem.php?pid=1285题意:给你N个点M条有向边,要求你输出字典序最小的拓扑排序序列.分析:前面已经做过很多这种题了,没什么说的直接输出字典序最小的拓扑序列即可. 注意:非递归求字典序最小的拓扑序列需要用到优先队列,且要是小值优先的队列.大致的思想就是队列原创 2014-06-14 11:58:53 · 1040 阅读 · 0 评论 -
HDU 2647 Reward(拓扑排序)
HDU 2647 Reward(拓扑排序)http://acm.hdu.edu.cn/showproblem.php?pid=2647题意:老板要给N个员工发工资,要求每个人最少888块且要满足M个要求.比如1号员工的工资要比2号员工的工资多.老板准备满足所有要求且最终发的奖金总数要最少.如果可行输出总数,不可行输出-1.分析:其实就是将所有员工的奖金拓扑排序,然后从888开始安排原创 2014-06-14 11:32:42 · 1214 阅读 · 0 评论 -
POJ 1094 Sorting It All Out(拓扑排序)
POJ 1094 Sorting It All Out(拓扑排序)http://poj.org/problem?id=1094题意:给你字母表的前N个大写字母和M个大小关系.其中要你在能判断出全序或矛盾的时候及时输出.或者直到最后也不能出现全序.分析:我们只需要对于每一条边(共M条有向边)都调用一次topo排序,看看能否出现结果或者出现矛盾即可. 如果能topo排序原创 2014-06-13 20:46:20 · 1077 阅读 · 0 评论 -
POJ 2367 Genealogical tree(拓扑排序:输出方案)
POJ 2367 Genealogical tree(拓扑排序:输出方案)http://poj.org/problem?id=2367题意:大意就是给你一个N个点的图,并且给你图中的有向边,要你输出一个可行的点拓扑序列即可.输入格式为,第一行点数N,以下接着有N行,每行以0结尾.第i行包含了以i点为起点的有向边所指的所有节点.分析:直接用 vector G[maxn][maxn] 和i原创 2014-06-13 19:25:27 · 1505 阅读 · 0 评论 -
POJ 2585 Window Pains(拓扑排序判定)
POJ 2585 Window Pains(拓扑排序判定)http://poj.org/problem?id=2585题意:给你一个4*4的棋盘窗口,现在电脑上有9个应用,每个应用占用固定的2*2正方形网格位置.你通过不同的顺序操作9个应用可以使得4*4的窗口当前显示的内容(数字代表)不同,现在给你一个4*4棋盘窗口的内容,问你这个内容是否合法.分析:其实本题就是一个判定拓扑排序是否存原创 2014-06-13 18:20:51 · 1655 阅读 · 0 评论 -
POJ 1270 Following Orders(拓扑排序:输出所有可能)
POJ 1270 Following Orders(拓扑排序:输出所有可能)http://poj.org/problem?id=1270题意:输入数据有两行,第一行给你由26个单个小写字母表示的变量,第二行给出成对的变量如(x,y),表示x要在y前面.然后要你输出所有可能的变量序列且满足第二行的顺序约束.如果存在多解,按字典序从小到大输出所有结果.分析: 注意了由于这里原创 2014-06-12 22:09:47 · 7952 阅读 · 0 评论 -
拓扑排序
拓扑排序 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。 一个有向图无法拓扑排序时只有一种情况:该有向图中存在环。下面给出简单的判定有向图是否可拓扑排序的代码:题意:给你一个N点和M条有向边的图,问原创 2015-04-01 16:52:21 · 1644 阅读 · 1 评论 -
HDU 4324 Triangle LOVE(拓扑排序)
HDU 4324 Triangle LOVE(拓扑排序)http://acm.hdu.edu.cn/showproblem.php?pid=4324题意:给你一个特殊的有向图,该有向图的任意两个节点u与v之间有且仅有一条单向边,现在问你该有向图是否存在由3个节点构成的环.分析: 该图本质是拓扑排序题.如果该图可以拓扑排序,那么不存在3节点的环,否则存在3节点的环.下面是原创 2014-06-18 15:04:28 · 1027 阅读 · 0 评论