【题解】CF487E Tourists / 圆方树

概念

圆方树是一种基于无向图构造的树。

我们知道,圆方树最早是 WC 上提出的处理仙人掌的东西,用于将树上做法拓展到复杂度正确的仙人掌做法。

但是一些关于点双有性质的题也可以用圆方树转化成树上问题,例如这个。

构造

对于原图中的点,称之为圆点。

对于原图的每个点双,考虑为其虚拟一个对应的结点,称之为方点。

从方点向原图中所有的圆点连边,得到的是一个森林。原图中每个点双和森林中的一棵树对应。

特别地,当原图连通时,得到的是一棵树,称为圆方树。

性质

  • 圆点、方点均不会和同类型的点相邻。

  • 圆方树的点数是 O(n) 的。

题解

对于此题,注意到到达某个点双时一定有路径经过其中的任意一点,所以这个点双对答案的贡献等价于其中点权最小的结点对答案的贡献。

因此考虑对原图建圆方树。

于是询问直接上树剖做就行。

考虑到修改的时候会影响到包含该结点的相邻方点,于是比较难修改。

考虑只钦定方点的答案为子树中圆点的最小贡献,询问时如果 lca 是方点就加上缺少的贡献。

时间复杂度 O(nlogn).

posted @   kymru  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示
主题色彩