#include#include #include #include #include using namespace std;const int MAXN=110010;char s[2*MAXN];//MAXN太大只能放外面int p[MAXN*2];//求给定字符串str的最长回文子串int solve(char str[]){ s[0]='$'; s[1]='#'; int n=strlen(str); for(int i=0;i i) p[i]=min(p[2*id-i],mx-i); else p[i]=1; for(;s[i-p[i]]==s[i+p[i]];p[i]++); if(p[i]+i>mx) { mx=p[i]+i; id=i; } if(ans