```cpp include include include include include include include include define lson(p) (p st; int ind,ans; void init(){ tot = 0; memset(head, 1,sizeof ...
分类:
其他好文 时间:
2019-08-17 12:43:17
阅读次数:
82
Description 如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人掌 图(cactus)。所谓简单回路就是指在图上不重复经过任何一个顶点的回路。 举例来说,上面的第一个例子是一张仙人图,而第二个不是——注意到它有三条简单回路:(4,3, ...
分类:
其他好文 时间:
2019-08-17 10:52:26
阅读次数:
84
题意: 求权值最小的割边 思路: $low[v] dfn[u]$ 则 $u v$ 这条边则为割边,由于有重边(重边一定不是割边),加个判断是否为第一次访问到父亲即可. cpp include include include include include include define ll long ...
分类:
其他好文 时间:
2019-08-17 10:48:45
阅读次数:
90
你说都退役了我还写什么博客今天考试发挥并不是很好啊 T1用20min切掉,然而打暴力+对拍码到了8:00(什么蒟蒻码力啊) T2打了个思路简单但是实现吃零食的tarjan(尽管考后发现这个思路就是扯淡),调到了10:00终于过了样例就交了,Wa10 T3还剩30min,调整了一下心态,推了10min ...
分类:
其他好文 时间:
2019-08-16 22:28:41
阅读次数:
72
前置芝士:Tarjan求强连通分量 对于一个有向图中的两个点,对于$V_i V_j$有一条边且$V_j V_i$有一条边(即能互相到达),就是一个强连通分量(不局限于两个点) 我们可以用$Tarjan$求出一个有向图中所有的强连通分量。 那么,在一些图中可以将强连通分量缩成一个点。并对它做一个标记。 ...
分类:
其他好文 时间:
2019-08-16 22:21:31
阅读次数:
103
// Tarjan算法求有向图强连通分量并缩点 #include #include #include #include #include #include using namespace std; const int N = 100010, M = 1000010; // int ver[M], N... ...
分类:
编程语言 时间:
2019-08-13 20:56:44
阅读次数:
100
概念: 双连通分量有点双连通分量和边双连通分量两种。若一个无向图中的去掉任意一个节点(一条边)都不会改变此图的连通性,即不存在割点(桥),则称作点(边)双连通图。 一个无向图中的每一个极大点(边)双连通子图称作此无向图的点(边)双连通分量。求双连通分量可用Tarjan算法。--百度百科 Tip:先学 ...
分类:
其他好文 时间:
2019-08-13 20:43:34
阅读次数:
77
图论习题整理 "求先序排列" 需要知道树的遍历方法,分别前中后序,代表着先访问根节点,左子树,右子树,或是左中右,或是左右中 现在给同一棵树的中后两个序列,求前序, 首先清楚这样的性质: 1.对于某个树(无论是子树还是本体,只要是棵完整的树就行),其前序遍历序列的第一个节点肯定是它的根,就是对于节点 ...
分类:
其他好文 时间:
2019-08-13 17:30:04
阅读次数:
86
P2341 [HAOI2006]受欢迎的牛 题解 tarjan 缩点板子题 如果 A 稀饭 B,那就 A 向 B 连边,构造出一个有向图 如果这个有向图里有强连通分量,也就说明这个强连通分量里的所有奶牛互相稀饭,他们都有机会成为明星奶牛 但是如果这个有向图里有2个及以上的出度为0的强连通分量,那么就 ...
分类:
其他好文 时间:
2019-08-13 17:17:35
阅读次数:
81
说人话: 边双联通: a到b的路径上无必经边 点双联通: a到b的路径上除了a,b没有必经点 tarjan求点双联通: 代码(补图) 割点: 桥: 求点双:强制dfs时不越过割点,即可求出一个块 求边双:dfs时不越过桥 不是割点:减少2n-1 是割点:减少sigmai的大小*其他所有子树的大小 t ...
分类:
其他好文 时间:
2019-08-11 12:36:38
阅读次数:
229