
圆方树
ylsoi
这个作者很懒,什么都没留下…
展开
-
点双连通分量及圆方树学习笔记
点双连通分量: 点双(点双连通分量)基于无向图,一个分量满足为点双当且仅当任意两个点之间都可找到两条点不重复的路径,可以理解为若干个有边相交的环。 有一个性质为点双内任意两点的点不重复路径都在点双内。 缩点双: 用tarjan求割顶的办法来求点双,即在求割顶的过程中用一个栈来记录下经过的点,当找到一个点为割顶的时候就弹栈,直到把它目前指向的那个结点给弹完。有一点需要注意的是每一个割顶可能存...原创 2018-08-03 13:36:40 · 1587 阅读 · 0 评论 -
[uoj30][CF Round #278]Tourists——树链剖分+圆方树
题目大意: 给定一个无向图,操作一可以修改一个点的点权,操作二询问从x到y的点不重复路径中的点权最小值。 思路: 无向图询问点不重复路径中的点权最小值,路径的条数很多,但是我们发现如果路上有两点在一个点双内,那么这两点之间的路径是可以经过这个点双内的任意一点而获得这个点双之内的最小值的,所以只需要对原图建出圆方树就好了。 建出圆方树之后圆点为原来的权值,方点为它周围所有圆点的权值的最小...原创 2018-08-16 08:28:19 · 248 阅读 · 0 评论 -
[loj2587][APIO2018]铁人两项——圆方树+计算贡献
题目大意: 给定一个无向图,求满足从s能够到c,从c能够到f,且两条路路径不经过重复点的三元组(s,c,f)的个数。 思路: 考虑怎么计算这种三元组,可以枚举s和f,然后计算从s到f的点不重复路径中可以经过的点的个数。 s到t点不重复路径中可以经过的点必定在也只能在这条路径所经过的点双内。所以可以考虑缩点双之后建出圆方树,然后就只需要在树上求出每一对(u,v)之间经过的点双点数大小。 直...原创 2018-08-17 17:15:15 · 290 阅读 · 0 评论 -
[bzoj2125]最短路——仙人掌,圆方树
题目大意 求仙人掌上最短路. 思路 将仙人掌上的所有环给建立方点,所有环上的点作为圆点连在方点上面. 考虑一个以1为根的树型结构,我们将所有环上的点和方点的距离设为该点离环上深度最小的点的最小距离. 这样利用树上倍增来求解两点之间距离后,我们发现跨过的环(方点)上的路程就是环上的点离环上深度最小的点的最小距离,于是我们只需要判断一下lca是否是方点即可。 /*===================...原创 2019-03-03 20:16:16 · 308 阅读 · 0 评论