**
最长公共回文子序列
Sample Input
aaaba
aabba
Sample Output
3
Data Constraint
对于50%的数据,满足1≤n≤100。
对于100%的数据,满足1≤n≤100000,1≤m≤20,字符串只包含小写字母。
Hint
最长公共回文子序列是aaa,长度为3。最长公共子序列是aaba,但它不是回文的。**
字符串水题。。。
#include<bits/stdc++.h>
using namespace std;
int aa,bb,i,j,ans,str=0;
char a[1111111],b[1111111],s[1111111];
bool check()
{
int j=1;
for(int i=0;i<=aa;i++)
{
if(a[i]==s[j])
{
j++;
}
if(j>str) break;
}
if(j>str) return true;
else return false;
}
void dfs(int st)
{
if(st==bb+1)
{
if(str>ans)
{
for(int i=1;i<=str/2;i++)
{
if(s[i]!=s[str-i+1]) return;
}
if(check())
{
ans=str;
}
}
}
else
{
str++;
s[str]=b[st];
dfs(st+1);
str--;
dfs(st+1);
}
}
int main()
{
freopen("lcps.in","r",stdin);
freopen("lcps.out","w",stdout);
scanf("%s",a);
aa=(strlen(a)-1);
scanf("%s",b);
bb=(strlen(b)-1);
dfs(0);
printf("%d\n",ans);
}