其他分享
首页 > 其他分享> > Luogu5334 [JSOI2019]节日庆典

Luogu5334 [JSOI2019]节日庆典

作者:互联网

Luogu5334 [JSOI2019]节日庆典

\(exkmp\)

容易发现,当我们处理到位置\(k\)时,对于此时的两个后缀\(i,j(i<j)\),如果\(T_i,T_j\)均有可能在\(\ge k\)的位置成为最优解,那么一定满足\(\operatorname{lcp}(T_i,T_j) \ge k-j+1\)。

本题的突破口在于,可能成为最优解的后缀数量极少(懵)。

对于长度相邻的两个后缀\(i,j(i<j)\),我们可以证明:\(k-j+1<j-i\)。

利用反证法,假设\(k-j+1 \le j-i\)。

设\(S_k=ABBC,T_i=BBCA,T_j=BCAB\),\(C\)为\(B\)的前缀。

\(T_{2j-i}=CABB\)。

我们先在\(k\)的情况下观察:

\(1.\)当\(BCA \le CAB\)时,\(T_i \le T_j\)。

\(2.\)当\(BCA > CAB\)时:\(T_{2j-i}>T_j\)。

因此在\(k\)处,\(j\)不可能是最优解。

那么我们扩展到\(k'>k\)处。

\(S_{k'}=ABBCD,T'_i=BBCDA,T'_j=BCDAB,T'_{2j-i}=CDABB\)。

同理:

\(1.\)当\(BCDA \le CDAB\)时,\(T'_i \le T'_j\)。

\(2.\)当\(BCDA > CDAB\)时:\(T'_{2j-i}>T'_j\)。

因此\(j\)不可能再成为最优解了,可以直接剔除。

\(k-j+1<j-i\),容易得到满足条件的后缀数量为\(\log k\)。

那么我们每次操作完成之后,直接暴力重构集合,利用\(exkmp\)可以\(O(1)\)比较两个后缀。

时间复杂度:\(O(n \log n)\)。

标签:le,Luogu5334,庆典,JSOI2019,BCA,后缀,CAB,最优,2j
来源: https://www.cnblogs.com/GK0328/p/14458419.html