『JZOJ 4669』【NOIP2016提高A组模拟7.19】弄提纲
Problem
Solution
KMP处理出$P_i$(就是所谓的next数组)
我们可以把 $P_i$看成:点$ i$ 的父亲是$P_i$。这样实际上$P$ 数组的存在就构成了一棵树。
然后现在问题变成了给两个点 $x$ 和$ y$,求他们的$\rm lca$ 以及$\rm lca$ 的深度,然后用倍增求$\rm lca$,$\rm rmq$
求$\rm lca$,或$ \rm tarjan $求$\rm lca$等都是可以的。时间复杂度 $O(n)$或 $O(n\ log\ n)$
1 |
|