对于一个字符串用f[i][j]表示i到j位可构成回文串
string a;cin>>a;
int len=a.length();
for(int i=0;i<len;i++)//从0位开始存
{
for(int j=0;j+i<len&&i>=j;j++)
{
if(a[i-j]==a[i+j]) ma[i-j][i+j]=ma[i+j][i-j]=true;
else break;
}
for(int j=0;j+i<len&&i>=j;j++)
{
if(a[i-j]==a[i+j+1]) ma[i-j][i+j+1]=ma[i+j+1][i-j]=true;
else break;
}
}
char a[200]; scanf("%s",a+1);
int len=strlen(a)-1;
for(int i=1;i<=len;i++)//从1开始存
{
for(int j=0;i-j>=1&&i+j<=len;j++)
{
if(a[i+j]==a[i-j]) f[i-j][i+j]=f[i+j][i-j]=1;
else break;
}
for(int j=0;i-j>=1&&i+j+1<=len;j++)
{
if(a[i-j]==a[i+j+1]) f[i-j][i+j+1]=f[i+j+1][i-j]=1;
else break;
}
}