圆方树

简介

用于解决无向图仙人掌有关的问题
仙人掌:

任意一条边至多只出现在一条简单回路的无向连通图称为仙人掌。

做法

主要通过建立圆点和方点两种点维护仙人掌的形态为树形,于是就有了圆方树
方点:

仙人掌上的环用方点代替,方点数对应环的数量

圆点:

除了方点,原模原样从仙人掌上复制下的点

Step1
对于一个方点,让其与进入环的节点(称为头结点)即方点和它的父亲的连边,把权值设置为0
再让这个方点与其它环内节点,即方点和其子结点的连边,把权值设置为这个子结点到方点父亲的最短距离长度,最短路径可以在环内直接求

Step2
如果两个点的LCA是圆点,那么他们的距离就是各自到LCA的距离,与平常的树上距离是一个求法
如果两个点的LCA是方点,那么某一个点的祖先中的LCA之前的那个祖先(也就是某个点到LCA这条链上的LCA的儿子结点)一定是与LCA这个方点在同一个环里面的

posted @   Diamondan  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示