仙人掌&圆方树学习笔记 1、仙人掌 圆方树用来干啥? ——处理仙人掌的问题。 仙人掌是啥? (图片来自于\(BZOJ1023\)) ——也就是任意一条边只会出现在一个环里面。 当然,如果你的图片想看起来舒服一点,也可以把图片变成这样子 (图片来源于网络 ...
BZOJ 最短路 仙人掌,圆方树 题面 BZOJ 求仙人掌上两点间的最短路 题解 终于要构建圆方树啦 首先构建出圆方树,因为是仙人掌,和一般图可以稍微的不一样 直接 tarjan 缩点,对于每一个强连通分量构建方点 只有一个点的就不要建了 圆方边的权值定义为到 dfs Tarjan 不就是搞了一棵 dfs 树出来吗 树上深度最小的点的最短距离。 为什么会有最短距离 因为它是一个环啊,走两侧的距离 ...
2018-05-27 20:46 1 1270 推荐指数:
仙人掌&圆方树学习笔记 1、仙人掌 圆方树用来干啥? ——处理仙人掌的问题。 仙人掌是啥? (图片来自于\(BZOJ1023\)) ——也就是任意一条边只会出现在一个环里面。 当然,如果你的图片想看起来舒服一点,也可以把图片变成这样子 (图片来源于网络 ...
orzYCB 虚树 %自为风月马前卒巨佬% 用于优化一类树形DP问题。 当状态转移只和树中的某些关键点有关的时候,我们把这些点和它们两两之间的LCA弄出来,以点的祖孙关系连成一棵新的树,这就是虚树。 容易证明,如果关键点数量为\(m\),则虚树点数不超过\(2m\)。 虚树的构建 dfs原 ...
Description 如果一个无自环无重边无向连通图的任意一条边最多属于一个简单环,我们就称之为仙人掌。所谓简单环即不经过重复的结点的环。 现在九条可怜手上有一张无自环无重边的无向连通图,但是她觉得这张图中的边数太少了,所以她想要在图上连上一些新的边。同时为了方便的存储这张无 ...
$+仙人掌 解题报告: 考虑环上的边,不可能在连边中再被覆盖,所以只需要考虑树边就好了。 ...
【BZOJ4316】小C的独立集(仙人掌,动态规划) 题面 BZOJ 题解 除了普通的动态规划以外,这题还可以用仙人掌的做法来做。 这里没有必要把圆方树给建立出来 \(Tarjan\)的本质其实就是一个构建\(dfs\)树的过程 所以我们在\(Tarjan\)的过程中求解就行了 我们设 ...
学习了一下圆方树。 圆方树是一种可以处理仙人掌的数据结构,具体见这里:http://immortalco.blog.uoj.ac/blog/1955 简单来讲它是这么做的:用tarjan找环,然后对每个环建立一个新点,然后将环上的边删去,并环上的每个点都连到新点上。这样我们就可以把一个环缩成 ...
【参考】 ★仙人掌相关问题的处理方法(未完待续) ★WC2017-immortalCO Making Graph into Trees 【DFS树】 仙人掌图:每条边至多在一个环上的图。 仙人掌图中每个环相当于一个点双连通分量,那么用Tarjan算法处理dfs树。 对于树边(low[y ...
如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人图(cactus)。所谓简单回路就是指在图上不重复经过任何一个顶点的回路。 输入的第一行包括两个整数n和m(1≤n≤50000以及0≤m≤10000)。其中n代表顶点个数,我们约定图中的顶点 ...