摘要: 这个题是我照着题解一点点理解一点点打出来的。 拓扑排序: 定义:将有向图中的顶点以线性方式进行排序。即对于任何连接自顶点u到顶点v的有向边uv,在最后的排序结果中,顶点u总是在顶点v的前面。 确定一个图的拓扑排序是基于bfs的,bfs是基于队列的。 首先记录所有的点和所有点的入度(在连边时顺便求得的 阅读全文
posted @ 2019-07-17 20:11 sdzmq 阅读(235) 评论(0) 推荐(0) 编辑
摘要: Tarjan貌似跟Hopcroft都是Cornell的大神。总的来说, Tarjan算法基于一个观察,即:同处于一个SCC中的结点必然构成DFS树的一棵子树。 我们要找SCC,就得找到它在DFS树上的根。 那么怎么找呢? 考虑一下,如果DFS访问到了某个结点u,又顺着u来到了结点v, 但从v发出了一 阅读全文
posted @ 2019-07-17 09:55 sdzmq 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 次小生成树,就是求除了最小生成树之外最小的那个生成树。 下面介绍一下利用prim求次小生成树的主要步骤。 1.先求出来最小生成树。并将最小生成树任意两点之间路径当中的权值最大的那一条找出来,为什么要找最大的呢,因为生成树加入一条边之后一定构成了回路,那么肯定要去掉这个回路当中一条边才是生成树,那么, 阅读全文
posted @ 2019-07-17 08:54 sdzmq 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 以下转自:dalao 差分约束系统有两种方式可以求解,最短路和最长路。当我们把不等式整理成d[a]+w<=d[b]时,我们求最长路。整理成d[a]+w>=d[b]时,我们求最短路。当求最短路时,我们通常要把各点距离初始化为正无穷,求最短路,把各点距离逐渐减小,直到符合所有不等式。也就是开始 各点不符 阅读全文
posted @ 2019-07-17 08:32 sdzmq 阅读(281) 评论(0) 推荐(0) 编辑