题解 Luogu P4248 [AHOI2013]差异

发布时间 2023-06-23 16:38:02作者: CJzdc

这是一个 SAM 做法。


显然只要求 \(\sum\limits_{1\le i < j \le n}\operatorname{lcp}(i,j)\)

考虑 \(T_i, T_j\) 在 SAM 上的两条链。显然,这两条链可以被表示为 \(1 \rightarrow P, P \rightarrow x, P \rightarrow y\) 的形式,其中 \(x,y\)\(T_i, T_j\) 在 SAM 上的终止节点。

枚举 \(P\),算 \(P\) 对答案的贡献。分两步讨论。

  • \(1 \rightarrow P\),这部分数量就是 \(1 \rightarrow P\) 的路径数量,可以一遍拓扑排序求出。

  • \(P \rightarrow x, y\),令 \(cnt\)\(P\) 到终止节点的方案数,显然这一部分是 \(C_{cnt}^2\)\(cnt\) 也可拓扑求出。把两者相乘就是 \(P\) 的贡献。

时间复杂度 \(O(|\sum|n)\),瓶颈在构造 SAM。