【蒟蒻の笔记】圆方树初识

圆方树是一种将无向连通图转换为树结构的方法,基于点双连通分量的概念。每个圆点代表一个点双连通分量,而方点则表示原图的节点。在圆方树中,每个点至少属于一个点双,确保其连通性,且任意两点间有且仅有一条简单路径。圆方树常用于简化图的结构并执行树上算法,如在例题中提到的APIO2018铁人两项等竞赛题目。

圆方树


首先描述一下圆方树:

注:我们把一条边连接两个节点的图也认为是点双连通的。

对于一个无向连通图,对于每个点双连通分量建立一个新的点,新的点作为“方点”,原本的点作为“圆点”,这就是圆方树名字中的“圆方”二字。

然后,在一个由前面的圆点和方点组成的新的图上,给方点和它的点双中的每个点连边,根据点双的性质,这会构成一颗树。

为什么圆方树是“树”

每个点至少属于一个点双,所以圆方树是连通的。

详细的说:本来点双连通分量的放在这里变成了一个类似菊花图的东西,然后点双之间必然互相连通(原图整个连通),所以整个图连通。

两个点(无论是圆是方)之间必然只存在一条简单路径(否则就会合并成一个点双)

圆方树的性质

圆方树是一棵树

满足树的所有性质,并且可以在上面进行树上算法(例如:书上查分、熟练泼粪)

圆方树中每一条简单路径上圆点和方点交错排列

我们所有的边都是通过方点向圆点连边得到,也就是说任何一条边连接一个圆点和一个方点

原图上两点之间的必经点即为圆方树上两点路径上的圆点

点双连通里其他点肯定不是必经的,然而想到达另一个点双所要经过的点是必须的,这也就是那个圆点

圆方树常见用法

都是树了,那就是化图为树(树上算法肯定比图上丰富吧)

别忘了先把Tarjan写对!/doge

例题

APIO2018 铁人两项

题目大意

大题思路
参考代码

SDOI2018 战略游戏

题目大意

大题思路
参考代码

P4320 道路相遇

题目大意

大题思路
参考代码

CF487E Tourists

题目大意

大题思路
参考代码
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值