题目链接 题目描述 方法: topo 每趟列车,没有停靠的车站(u)的等级必然小于停靠车站(v)的等级,所以u,v连边,拓扑排序算level。 Code: #include <bits/stdc++.h> # define LL long long using namespace std; cons ...
分类:
其他好文 时间:
2020-01-30 23:18:09
阅读次数:
137
任务:给定一个有向图,实现图的深度优先, 广度优先遍历算法,拓扑有序序列,并输出相关结果。 功能要求:输入图的基本信息,并建立图存储结构(有相应提示),输出遍历序列,然后进行拓扑排序,并测试该图是否为有向无环图,并输出拓扑序列。 按照惯例,先上代码,注释超详细: #include<stdio.h> ...
分类:
编程语言 时间:
2020-01-30 23:05:46
阅读次数:
146
拓扑排序是对有向无圈图的一种排序,它使得如果存在一条从vi到vj的路径,那么在排序中vj出现在vi后面。 首先,对每一个顶点计算它的入度,记录在一个数组中,然后,将所有入度为0的顶点放入一个初始为空的队列中。当队列不空时,删除一个顶点v,并将与v邻接的所有的顶点的入度减1,只要一个顶点的入度降为0, ...
分类:
编程语言 时间:
2020-01-29 12:44:23
阅读次数:
92
一、什么是拓扑排序在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件: 每个顶点出现且只出现一次。若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现 ...
分类:
其他好文 时间:
2020-01-26 14:26:55
阅读次数:
86
题意 给定一个 $n$ 个点 $m$ 条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大。你只需要求出这个权值和。 允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次 Solution 先缩点,就成了一个DAG图,做一遍拓扑排序,按拓扑序进行DP。 代码 ...
分类:
其他好文 时间:
2020-01-20 22:44:07
阅读次数:
82
文字讲解 题目分析: __首先__ ,要知道这道拓扑排序题目的性质。 食物链中的生物 —— __节点__ 生物之间的关系 —— __有向边__ 为了方便描述,我们 将 __最左端是不会捕食其他生物的生产者__ 叫做 __最佳生产者__ 将 __最右端是不会被其他生物捕食的消费者__ 叫做 __最佳消 ...
分类:
其他好文 时间:
2020-01-15 23:23:32
阅读次数:
161
Luogu P3243 菜肴制作 这明明是一道带字典序的拓扑排序,结果还上到紫题…… 至于判断是否无解,只需要再拓扑排序完,遍历一遍有没有入度不为$0$的点。如果有,就说明无解。 ...
分类:
其他好文 时间:
2020-01-14 23:42:19
阅读次数:
80
"题面" "英文题面" 题解: 由于要统计字符串在某一串中的出现情况,不难想到用线段树合并。 对所有串建立广义SAM,然后拓扑排序,沿着link边向上合并即可。 每次查询,只需保存每个串终止位置的节点编号,在线段树上查询。 注意建立广义SAM时不能简单地把last设为1,还要注意不能每次都新加节点, ...
分类:
其他好文 时间:
2020-01-14 09:58:49
阅读次数:
79
介绍 拓扑排序,很多人都可能听说但是不了解的一种算法。或许很多人只知道它是图论的一种排序,至于干什么的不清楚。又或许很多人可能还会认为它是一种啥排序。而实质上它是对有向图的顶点排成一个线性序列。 至于定义,百科上是这么说的: 对一个有向无环图(Directed Acyclic Graph简称DAG) ...
分类:
编程语言 时间:
2020-01-06 09:14:45
阅读次数:
179
拓扑排序 问题 一个完整的项目往往会包含很多代码源文件。编译器在编译整个项目的时候,需要按照依赖关系,依次编译每个源文件。比如,A.cpp 依赖 B.cpp,那在编译的时候,编译器需要先编译 B.cpp,才能编译 A.cpp。 解析 解决思路与“图”这种数据结构的一个经典算法“拓扑排序算法”有关 拓 ...
分类:
编程语言 时间:
2020-01-05 22:28:31
阅读次数:
101