[CmdOI2019]口头禅
题意
给定\(n\)个字符串序列\(\{s\}\),\(q\)次询问,求\(s_{l},\cdots,s_r\)的最长公共子串
做法
考虑正在处理\([l,r]\)内的字符串串,令其最短的字符串长度\(\in (2^{x-1},2^x]\)
找到所有长度\(\in(2^{x-1},2^x]\),令其中间那个字符串为\(s_{mid}\)
以\(s_{mid}\)作为基串,两边分别做前缀与后缀(方便查询)
总复杂度\(O((\sum |S|)log^2n)\)