如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人图(cactus)。所谓简单回路就是指在图上不重复经过任何一个顶点的回路。 输入的第一行包括两个整数n和m(1≤n≤50000以及0≤m≤10000)。其中n代表顶点个数,我们约定图中的顶点 ...
参考 仙人掌相关问题的处理方法 未完待续 WC immortalCOMaking Graph into Trees DFS树 仙人掌图:每条边至多在一个环上的图。 仙人掌图中每个环相当于一个点双连通分量,那么用Tarjan算法处理dfs树。 对于树边 low y gt dfn x 直接处理,环边先忽略。 每个环只在其深度最小的点x处理,设深度最大的点为y,则找到 x,y 并进行处理 fa y x ...
2018-01-19 10:55 0 2366 推荐指数:
如果某个无向连通图的任意一条边至多只出现在一条简单回路(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 ...
仙人掌&圆方树学习笔记 1、仙人掌 圆方树用来干啥? ——处理仙人掌的问题。 仙人掌是啥? (图片来自于\(BZOJ1023\)) ——也就是任意一条边只会出现在一个环里面。 当然,如果你的图片想看起来舒服一点,也可以把图片变成这样子 (图片来源于网络 ...
一个菊花图,重复这么做,一棵仙人掌就变成一棵树啦!这棵树就叫做圆方树,其中原点叫圆点,新点叫方点。 圆 ...
考场上感觉是一道可做题,然后最后做法差不多,但是一直卡在 \(dfn\),没去搞 \(bfn\)。 然后今天捡起这道题想了一下就想出来了。 因为没有交题链接,下面的做法不一定正确。(结论经过对拍,应该没问题) 这是一个俩 \(\log\) 做法,不知道有没有更优的。 首先,这是一个区间 ...
Description 如果一个无自环无重边无向连通图的任意一条边最多属于一个简单环,我们就称之为仙人掌。所谓简单环即不经过重复的结点的环。 现在九条可怜手上有一张无自环无重边的无向连通图,但是她觉得这张图中的边数太少了,所以她想要在图上连上一些新的边。同时为了方便的存储这张无 ...
【BZOJ2125】最短路(仙人掌,圆方树) 题面 BZOJ 求仙人掌上两点间的最短路 题解 终于要构建圆方树啦 首先构建出圆方树,因为是仙人掌,和一般图可以稍微的不一样 直接\(tarjan\)缩点,对于每一个强连通分量构建方点(只有一个点的就不要建了) 圆方边的权值定义为到\(dfs ...