首先我们需要知道强连通分量,因为Tarjan就是用来求这个的。连通的意思是对于<u,v>,存在路径可以从其中一个达到另一个;强连通是指即存在从u到v的路径,又存在从v到u的路径。强连通是针对于有向图来说的,因为无向图只要做到了连通就做到了强连通。强连通分量就是指有向图的极大强连通子图,多一个点少一个 ...
分类:
编程语言 时间:
2018-09-15 20:48:17
阅读次数:
224
"题目传送门" 这个题还是个缩点的板子题...... 答案就是size大于1的强连通分量的个数 加一个size来统计就好了 ...
分类:
其他好文 时间:
2018-09-14 22:57:35
阅读次数:
163
"题目传送门" 这个题其实就是tarjan缩点的板子题对吧....至少我是这么想的 首先这是个有向图,对于一个有向图,我们肯定要考虑环的存在与否,恰好这个题又是让我们找出最少的点,使得这几个点能够走遍全图 那么,显然,对于每一个强连通分量,我们看做一个点即可(因为强连通分量中每两个点之间一定能从一个 ...
分类:
其他好文 时间:
2018-09-14 20:33:46
阅读次数:
172
第一次DFS是正常顺序;第二次将edge反向,然后从Finish time最后的点开始DFS。 如下分别是两次DFS。 逆序即以b为源节点开始,会得到b->a->e; c->d; g->f; h;四棵子树,即四个强连通分量。 现在解释一下为什么要先反向? 以C结点为例,图未反向时,我们从C能遍历到的 ...
分类:
其他好文 时间:
2018-09-12 14:00:07
阅读次数:
278
思路很乱,写个博客理一理。 缩点 + dp。 首先发现把一个环上的边反向是意义不大的,这样子不但不好算,而且相当于浪费了一次反向的机会。反正一个强连通分量里的点绕一遍都可以走到,所以我们缩点之后把一个强连通分量放在一起处理。 设$st$表示缩点之后$1$所在的点,设$f_{x}$表示从$st$走到$ ...
分类:
其他好文 时间:
2018-09-11 01:10:00
阅读次数:
218
Description 一位冷血的杀手潜入 Na-wiat,并假装成平民。警察希望能在 N 个人里面,查出谁是杀手。警察能够对每一个人 进行查证,假如查证的对象是平民,他会告诉警察,他认识的人, 谁是杀手, 谁是平民。 假如查证的对象是杀 手, 杀手将会把警察干掉。现在警察掌握了每一个人认识谁。每一 ...
分类:
其他好文 时间:
2018-09-09 16:48:45
阅读次数:
164
"hdu_4635" 题目大意: 给出一张DAG(n个点,m条边),求出能加的最大边数,使得该图无重边,无自环,非强连通。 题解: 这题题面很好理解,也没有什么很难的点,主要是如何求出最大边数需要动点脑筋。首先要明确一点强连通图不一定是完全图,完全图一定是强连通图。因为完全图定义是任意两点均有连边, ...
分类:
其他好文 时间:
2018-09-09 15:16:52
阅读次数:
220
Tarjan 求强连通分量模板、参考博客 #include<stdio.h> #include<stack> #include<algorithm> using namespace std; const int maxn = 1e3 + 10; const int maxm = 330000 + 1 ...
分类:
其他好文 时间:
2018-09-08 11:47:23
阅读次数:
220
一、dfs框架: 二、无向图连通分量 三、二分图判定 调用之前,清空color数组,调用之前,先给color[u]赋值1 四、无向图的割点和桥 加入时间戳 注意:求桥的时候注意重边 五、无向图的双连通分量 点-双连通分量 六、有向图的强连通分量 七、2-SAT问题 ...
分类:
其他好文 时间:
2018-09-04 01:48:50
阅读次数:
251
Tarjan算法 应用: 有向图的强连通分量 无向图割点和桥 双连通分量 接下来主要谈论前面两者的应用(~~主要是第三种还没学会~~) 算法简要介绍 我们需要先理解一下知识:搜索树 有向图的搜索树的4种边,如下图所示: tree edge:在dfs搜索u的过程中,第一次搜索v,则(u,v)是树边 f ...
分类:
其他好文 时间:
2018-09-03 00:06:11
阅读次数:
213