仙人掌学习笔记

今天大概学了一些仙人掌
emmmmmmmmmmm
感觉这东西思想不难,就是很能码,可能因为我码风比较长

仙人掌图指的是一个无向的连通图,其中任意一条边至多在一个环中
于是树其实就是一个不含环的,特殊的仙人掌图,仙人掌图就是一个特殊的无向图
这里写图片描述

由于其特殊性质,许多在无向图上很棘手的,甚至是npc的问题在仙人掌图上就变得可做了

通常我们会用一个叫圆方树的东西处理关于仙人掌的问题
原图中每个环都是一个点双,我们找出这些环,然后开始建树
我们在tarjan找点双的时候已经建出了一个dfs树,对于每个环,我们定义他的父亲为这个环上在dfs树上层数最高的点
原图中的点为圆点,圆点与圆点之间的边按原图的连法连
对于原图中的环,我们建一个方点代表这个环,然后连向这个环上的所有点,边权为这个点走到这个环的父亲的最短路

然后就可以把图上的问题转到了树上
可以处理种种问题(当然和在树上的还是很不同的,复杂很多而且代码会长很多而且我都不会……)

学习资料

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值