大意:把一个字符串分成两串,假如一个字符串是回文串就可以加上它的VALUE,否则它的VALUE为0;
KMP的特点是可以求出前缀与后面的字符串是否匹配,
注意回文串的特点,所以当我们把回文串反转的时候会发现与前面的字符串匹配,
然后将字符串整个反转可以求出后缀的,
利用其特点可以快速判断回文串,
CODE;
#include#include #include #include #define N 500008using namespace std;typedef long long ll;char s[2*N];int next[2*N];int a[150];int sum[N*2],pos[2*N],pre[2*N];void get_next(char *s)//NEXT数组{ next[0]=-1; int k=-1,i=0; int l=strlen(s); while (i