一种新思路求证明复杂度
查看原帖
一种新思路求证明复杂度
361141
_JF_殉情楼主2024/4/20 22:49

一个抽象的想法,不知道时间复杂度的正确性如何。

首先先找到 2626 个字母中最先消失的那个字母的最后出现位置。

然后把这个字母在给出的串删去。

跑kmp,如果满足 fi=i/2f_i=i/2 的话,说面前半部分加上原来的字母,就有可能是串 ss。

考虑暴力判断合法性。

一个优化,对于我们找到的位置 ii,我们可以考虑算出来 t[1,i]t[1,i] 的“理论最长拓展长度”

就是比如说"aabcaa",其中 aa 出现 44 次,bb 出现 11次,cc 两次,

那么他理论最长扩展长度就是 (4+2)+4(4+2)+4,就你每次删掉出现次数最少的字母。

通过这个可以判断掉一些无用的情况,求这个东西显然可以双指针。

但是这样的时间复杂度是多少我完全不会/ll。

求证明或hack。谢谢。

2024/4/20 22:49
加载中...