CFgym102391K Wind of Change

XX Open Cup, Grand Prix of Korea

题意:给出两棵树 ,标号对应,边有边权,均为正。

定义 中的距离, 类似。

对每个 ,求出

,时限 ,空限


存在点分治后建立虚树并 的做法,比较无趣,不讲。

建立 的点分树。

点分树满足一条关键性质:点分树中的 一定在原树 之间的路径中。

于是, 可以表示成

这有个好处,由于点分树的高度是 的,一个点的祖先数目是极少的。

那么,对每一个点 ,枚举其在点分树 上的两个祖先 ,能得到 个三元组

考虑如何统计答案。对于点 产生的某个 ,查看其它点产生的 的最小值,然后将 贡献到答案即可。

(查询除去自己后的最小值,只需记录最小值和次小值)

不是正确的 ,则会将 算大,不会影响答案。

暴力存储空间复杂度达到了 ,可能导致 MLE

于是对每个 分别处理,即将 限制在 的子树内,然后在 的点分树上找祖先。

这样,空间复杂度就降为 甚至

不难发现,若扩展到 棵树的情况,也能做到 时间, 空间。