仙人掌&圆方树学习笔记 1、仙人掌 圆方树用来干啥? ——处理仙人掌的问题。 仙人掌是啥? (图片来自于\(BZOJ1023\)) ——也就是任意一条边只会出现在一个环里面。 当然,如果你的图片想看起来舒服一点,也可以把图片变成这样子 (图片来源于网络 ...
orzYCB 虚树 自为风月马前卒巨佬 用于优化一类树形DP问题。 当状态转移只和树中的某些关键点有关的时候,我们把这些点和它们两两之间的LCA弄出来,以点的祖孙关系连成一棵新的树,这就是虚树。 容易证明,如果关键点数量为 m ,则虚树点数不超过 m 。 虚树的构建 dfs原树,对点进行dfn标号,并将关键点按dfn从小到大排序。 搞个栈,栈内的点满足:都在从栈顶的点到原树的根的一条链上。 现在我 ...
2019-02-02 16:16 3 540 推荐指数:
仙人掌&圆方树学习笔记 1、仙人掌 圆方树用来干啥? ——处理仙人掌的问题。 仙人掌是啥? (图片来自于\(BZOJ1023\)) ——也就是任意一条边只会出现在一个环里面。 当然,如果你的图片想看起来舒服一点,也可以把图片变成这样子 (图片来源于网络 ...
【BZOJ2125】最短路(仙人掌,圆方树) 题面 BZOJ 求仙人掌上两点间的最短路 题解 终于要构建圆方树啦 首先构建出圆方树,因为是仙人掌,和一般图可以稍微的不一样 直接\(tarjan\)缩点,对于每一个强连通分量构建方点(只有一个点的就不要建了) 圆方边的权值定义为到\(dfs ...
如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人图(cactus)。所谓简单回路就是指在图上不重复经过任何一个顶点的回路。 输入的第一行包括两个整数n和m(1≤n≤50000以及0≤m≤10000)。其中n代表顶点个数,我们约定图中的顶点 ...
Statement 带标号仙人掌计数问题.(\(n \le 131071\)) Solution 设\(x\)个点的仙人掌个数的生成函数为\(C(x)\) 对于与根相邻的块, 还是仙人掌, 生成函数为\(C(x)\) 包含根的环, 生成函数为\(\sum_{i \ge ...
用途 如果某个无向连通图的任意一条边至多只出现在一条简单回路里,我们就称这张图为仙人掌图。 所谓简单回路就是指在图上不重复经过任何一个顶点的回路。 在某些情况下,我们会需要生成仙人掌图来检验代码的正确性。 随机连边的话效率太低,而且生成的图也可能不合法。 看上去似乎不大好实现,但实际上 ...
【参考】 ★仙人掌相关问题的处理方法(未完待续) ★WC2017-immortalCO Making Graph into Trees 【DFS树】 仙人掌图:每条边至多在一个环上的图。 仙人掌图中每个环相当于一个点双连通分量,那么用Tarjan算法处理dfs树。 对于树边(low[y ...
点构成虚树的 \(K\) 连通块个数。其中 \(K\) 连通为当在原树上距离 \(\leq K\) 就 ...
Description 如果一个无自环无重边无向连通图的任意一条边最多属于一个简单环,我们就称之为仙人掌。所谓简单环即不经过重复的结点的环。 现在九条可怜手上有一张无自环无重边的无向连通图,但是她觉得这张图中的边数太少了,所以她想要在图上连上一些新的边。同时为了方便的存储这张无 ...