摘要:
引入 偶尔,我们会遇到一些要在无向图/仙人掌上做的问题,这些问题如果在树上就会比较方便,那么我们就开始考虑能不能把原图等效成一棵树,然后就可以方便地乱搞了? 圆方树就是一种将无向图/仙人掌变成树的数据结构 一般无向图的圆方树 构建 对于一般的无向图,不满足树形结构的部分无非是边双联通分量、点双联通分 阅读全文
摘要:
题目链接 "JZOJ3225" 题目大意 给出一张$N$个点$M$条边的无向图,和$Q$对点对$p_i, q_i$,问最后图中每个点必定被$p_i$到$q_i$的路径覆盖多少次 $N \le 1e5, M, Q \le 2e5$ | 样例输入 | 样例输出 | | | | | 4 4 21 21 3 阅读全文
摘要:
题目链接 "codeforces" "UOJ" 解析 这个问题要是放到树上就很好做了,那能不能把它等效到一棵树上呢?当然是可以的 注意到“不经过重复的城市”,显然如果一条路径经过一个点双联通分量,那么点双中的所有点都可以经过 点双??于是套路上圆方树,询问显然可以方便地树链剖分解决,主要问题在于修改 阅读全文
摘要:
题目链接 "洛谷" "LOJ" 前置知识 圆方树 解析 考虑一条从$s$到$f$的路径产生的贡献是除$s, f$外经过的点数 如果这条路径经过了某个点双连通分量,点双上的每个点都会产生贡献 点双$\rightarrow$圆方树 建出圆方树,方点权值为代表的点双的大小 这样两点间的路径对应成两个圆点间 阅读全文