保亭黎族苗族自治县网站建设_网站建设公司_色彩搭配_seo优化
2025/12/24 21:15:01 网站建设 项目流程

对于字符串这种对前后缀有很强性质的结构不用就是浪费了,当然也可能是回文结构这种特殊结构。

原本的结构很难描述,是 \(s[i, i + l - 1] < R (s[i + l, i + 2l - 1])\),起始点就很没有规律,对于不同的 \(l\) 甚至起始点和终止点都不一样,我们现在的目标是找到一个媒介使得可以转化为起始点一样或者中止点一样。

不难发现上述式子等价于 \(s[i, i + 2l - 1] < R(s[i, i + 2l - 1])\),当取等的时候就是回文串了,不然一定的对应区间内分出胜负(超过一半就等价了)。

但是我问你,这个东西你知道怎么算吗?你不知道,还是开头的话,我们到此没有利用任何前缀后缀的信息,这对于一个字符串题显然是不正常的,我们尝试往前后缀上面靠。其实上述条件的充分条件是 \(s[i, n] < s[1, i + 2l - 1]\),为啥是充分条件呢?因为当 \(s[i, i + 2l - 1]\) 是回文串的时候,我们不知道其它地方会判成啥样子,需要减去这一部分。显然,用后缀排序可以轻松求出充分条件的答案。

通俗来说,就是需要减去 \(s[i, i + 2l - 1]\) 是回文串且 \(s[i + 2l, n] < R(s[1, i - 1])\) 的情况,看上去变复杂但是后面区间只有 \(O(n)\) 个,尝试对于每个回文中心考虑,其实对于每个回文中心产生的回文串,上述式子的真假都是一样的(前缀和后缀取的都一样,中间是回文的),稍微转化一下就变成了一个二维数点问题,可以在 \(O(n \log^2 n)\) 的时间内解决。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询