#P11305. [COTS 2016] 删除 Brisanje

    ID: 10786 Type: RemoteJudge 1500ms 500MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>2016二分哈希, hash后缀数组,SACOCI(克罗地亚)

[COTS 2016] 删除 Brisanje

题目背景

译自 Izborne Pripreme 2016 (Croatian IOI/CEOI Team Selection) D1T2。4s,0.5G\texttt{4s,0.5G}

「魔法和奇迹,都是存在的。」

为了卡掉理论复杂度较劣的解法,在 Subtask 0 添加了 Hack 数据(#35~#39,感谢 @Hoks 和 @N_z_),同时将时限改为 1.5s。欢迎对数据的加强。

题目描述

给定字符串 ss

定义 s(l,r)s(l,r)sslrl\sim r 个字符组成的字符串。

定义 t(l,r)t(l,r)ss 删除第 lrl\sim r 个字符后得到的字符串。

找到最长的区间 [l,r][l,r],使得 s(l,r)s(l,r)t(l,r)t(l,r) 中作为子串出现。

输入格式

一行一个字符串 ss

输出格式

输出一个整数,表示最长可能的区间长度。

abcxyzabc

3
bbcdbcbbcbadadda
5

提示

样例解释

不难注意到 $\texttt{bbcdbcb\underline{bcbad}adda} \to \texttt{bbcd\underline{bcbad}da}$。

数据范围

对于 100%100\% 的数据,保证:

  • 1s1051\le |s| \le 10^5
  • ss 中只有小写字母。
子任务编号 s\vert s\vert \in 得分
1 1 [1,400] [1,400] 16 16
2 2 (400,5000] (400,5000] 24 24
3 3 (5000,105] (5000,10^5] 60 60