摘要: SOL: 对这棵树进行树分治,求出重心到每个点的前缀和 s。 对于两个点 i, j,假设是从 i 开始走到 j,那么它们的 s 互为 相反数,且 i 的 s 是它到重心路径上最大的,j 的 s 则是最 小的。 同时维护一下最值出现的个数,即可得到将两条链拼起来的 链的 f 值。 将所有点按 s 桶排 阅读全文
posted @ 2018-03-16 18:47 泪寒之雪 阅读(207) 评论(0) 推荐(0) 编辑
摘要: SOL: 我们发现答案就是 跑一边KMP 那么答案就是i-net[i], 我们考虑在trie上跑KMP,我们发现KMP的复杂度是依赖摊还分析的线性复杂度。如果朴素的KMP做法时间复杂度是不对的。 比如这样一个trie: a | a | a / \ b b 复杂度就退化了。那么我们可以考虑对每一个节点 阅读全文
posted @ 2018-03-16 12:52 泪寒之雪 阅读(392) 评论(0) 推荐(0) 编辑