随笔分类 - 拓扑排序
1
拓扑排序
摘要:##[ 旅行计划](https://www.luogu.com.cn/problem/P1137) > 这个题,我们根据题意是不是知道这个是一个,我们需要计算的是以城市 **为终点最多能够游览多少个城市**;这个是不是也是在一个拓扑序上做一个简单的就行了,我们
阅读全文
摘要:## [ 最大食物链计数](https://www.luogu.com.cn/problem/P4017) >**最大食物链数量**;最大指的是需要**从一个入度为零的点开始到一个出度为零的点**,这是一个完整的食物链,问我们给出的食物网中,**食物链的数量** ① 本题中,不仅需要
阅读全文
摘要:## 拓扑排序专题 拓扑排序指的是有向无环图(); 学过计算机网络的知道计算机网络中有一个拓扑结构; 下面就是一个拓扑结构; 那拓扑序就是,图中任意一对顶点和,若边,则在线性序列中出现在之前 我们可以发现 **拓扑序不是唯一的**; 接下来,我们需要知
阅读全文
摘要:有向图求拓扑序 求拓扑序有和两种方法。 在求拓扑序过程中,可以增加判断是否有环的代码。 有些题目中,单独采用或只为了判断是否有环,而不是要输出拓扑序,这时代码可以适当简化。 有向图判环 例题:
阅读全文
摘要:理论链接 例题 小希的迷宫 . 小希的迷宫 题目要求:判断是不是连通无环的图 总结 1、必须使用!使用直接! 2、无向图判环,应尽量采用并查集(判断连通性)+公式法(判环) 3、 方法1:数学公式法判环+
阅读全文
摘要:题目传送门 解题思路: DAG求拓扑序 利用拓扑序列,根据题意做递推 #include <bits/stdc++.h> using namespace std; const int N = 110, M = N * N / 2; int n, m; int f[N], din[N], dout[N]
阅读全文
摘要:## [ . 可达性统计](https://www.acwing.com/problem/content/166/) ### 一、题目描述 给定一张 个点 条边的 **有向无环图**,分别统计从每个点出发能够到达的点的数量。 **输入格式** 第一行两个整数
阅读全文
摘要:##[ . 奖金 ](https://www.acwing.com/problem/content/description/1194/) ### 一、题目描述 由于无敌的凡凡在年世界英俊帅气男总决选中胜出, 总经理心情
阅读全文
摘要:https://blog.csdn.net/Dumby_cat/article/details/122906323 挖坑,待填充 y总说,如果点数100W,边数1000W,一般来说就是拓扑序+递推+三角不等工 求最短路(最长路),时间复杂度可以达到线性。
阅读全文
摘要: 【模板】缩点 题目传送门 一、题目描述 给定一个 个点 条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大。你只需要求出这个权值和。 允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次。 输入格式 第一行两个正整数 第二行
阅读全文
摘要:##[ . 家谱树](https://www.acwing.com/problem/content/1193/) ### 一、题目描述 有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。 给出每个人的孩子的信息。 输出一个序列,使得每个人的孩子都比那个人后列出。
阅读全文
摘要:## . 有向图的拓扑序列 一、题目描述 给定一个 个点 条边的有向图,点的编号是 到 ,图中可能存在重边和自环。 请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出 。 若一个由图中所有点构成的序列 满足:对于图中的
阅读全文
摘要:##[ 车站分级](https://www.acwing.com/problem/content/458/) ### 一、题目描述 一条 **单向** 的铁路线上,依次有编号为 的 个火车站。 每个火车站都有一个级别,最低为 级。
阅读全文
摘要:题目传送门 一、思路分析 1、不停的接收结点关系,创建有向图,A->B有边表示 A<B 2、每进入一个结点关系后,判断现在的有向图是否有环,有环就是冲突,提示并退出。判断是否有环可以用拓扑排序, 判断方法是:只要入队(或者出队)的次数不等于节点的个数,就说明有环,有环就是存在矛盾的。 3、在无环的情
阅读全文
摘要:题目传送门 一、理解与感悟 有向图有负权边! 比如从1到n有两步,一步是权值是100,另一步权值是-100,如果初值设置为0,就搞不清楚是加起来之后是0,还是根本没办法到达。 如果初值设置为-1,那么也是一个样,不知道是天生-1,还是运算完是-1。 设置初值为INF是解决负权边的有效办法!!! 二、
阅读全文
摘要:题目传送门 一、解题思路 1、用拓扑排序干掉非环结点 2、用或者找出最小环的长度 二、拓扑排序+dfs 解法 1、vector邻接表实现 #include <bits/stdc++.h> using namespace std; /** 思路:其实就是求最小环。每个点的出度都是1
阅读全文
摘要:一、什么是拓扑排序? 在图论中,**拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)**的所有顶点的线性序列。且该序列必须满足下面两个条件: 每个顶点出现且只出现一次。 若存在一条从顶点 A 到顶点 B 的路径,那么在序列中
阅读全文
摘要:题目传送门 一、理解与感悟 求DAG的拓扑序列有两种办法,都是可以的,一种是比较常用的BFS入度为0的思路框架求拓扑序列,另一种是DFS+记忆化的思路框架求拓扑序列,本题解都来实现一下。 总结: 1、谁向谁有一条有向边是需要强调的,x->y与 y->x是完全不同的。 本题是说x被y吃掉,记录的是这个
阅读全文
摘要:题目传送门 一、拓扑排序完整代码(bfs) #include <bits/stdc++.h> using namespace std; const int N = 10010; int n; //必须完成的杂务的数目 int x; //工作序号 int y; //一些必须完成的准备工作 int an
阅读全文
1