manacher模板整理
Posted dyzll
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了manacher模板整理相关的知识,希望对你有一定的参考价值。
//p[]为最长回文半径长度,id为当前最靠右端回文串的中心点(多个取最靠左),mx为id对应的回文串的最右端坐标+1
void manacher(char *s,int len){ p[0] = 1; int mx = 0 , id = 0; for(int i = 1 ;i < len ; i ++){ p[i] = mx > i ? min(p[id*2 - i],mx-i) : 1; while(s[i+p[i]] == s[i-p[i]]) p[i] ++; if(i+p[i] > mx){ id = i; mx = i +p[i]; } } }
以上是关于manacher模板整理的主要内容,如果未能解决你的问题,请参考以下文章