题意:
给一个字符x代表真实的a 然后输出的时候转换
然后就是求最长回文子串的串是什么 长度要大于1
思路:
就是裸的manacher,弄清楚下标的转换关系就好了
代码:
#include"cstdlib" #include"cstdio" #include"cstring" #include"cmath" #include"queue" #include"algorithm" #include"map" #include"vector" #include"string" #define inf 0x7fffffff #include"iostream" #define ll __int64 using namespace std; #define N 200005 char a[N],b[N*2]; int rad[N*2]; int main() { char x[2]; while(scanf("%s%s",x,&a[1])!=-1) { int maxl,maxid,id; int i,len; for(i=1; a[i]; i++) { b[i*2]=a[i]; b[i*2+1]='#'; } len=2*i; b[0]='?'; b[1]='#'; b[len]='