hdu 5421 Victor and String
支持双端插入的回文树。
考虑维护第二个 last 表示当前整个串的最长回文前缀。
往前 append 的时候可以直接那第二个 last 来跳 fail , 因为回文前缀和回文后缀是对称的。只有 getfail 的时候需要改一下,变成判断当前字符和前缀之后的字符是否相同。
还要注意,如果当前的前面/后面 的 last 是整个串,那么需要把另一个 last 也设置成整个串。
注意如果当前插入得到的回文串pam里面已经有了也要加上它的贡献!
cpp
1 |
|