图片说明
题意:将两个字符串合并2个字符串的字符顺序不变求最大回文串长度。
思路:DP【l1】【r1】【l2】【r2】表示,字符串a【l1】【r1】和b【l2】【r2】能否组成回文串。考虑四种状态,
若a[l1]==a[r1]则 dp[l1][r1][l2][r2]|=dp[l1+1][r1-1][l2][r2]
若a[l1]==b[r2]则 dp[l1][r1][l2][r2]|=dp[l1+1][r1][l2][r2-1]
若a[r1]==b[l2]则 dp[l1][r1][l2][r2]|=dp[l1][r1-1][l2+1][r2]
若b[l2]==b[r2]则 dp[l1][r1][l2][r2]|=dp[l1][r1][l2+1][r2-1]

#include <iostream>
#include <algorithm>
#include <cmath>
#include <ctype.h>
#include <cstring>
#include <cstdio>
#include <set>
#include <sstream>
#include<string>
#include<queue>
#include<stack>
#include<map>
#include<vector>
#define MAXX 100005
#define SIS std::ios::sync_with_stdio(false)
#define ll long long
#define INF 0x3f3f3f3f
//#include<bits/stdc++.h>
using namespace std;

const int MAX =1e6+5;
const int mod=998244353;
char a[100],b[100];
int dp[55][55][55][55];
int main()
{
    SIS;
   int t;
   scanf("%d",&t);
   while(t--)
   {
       memset(dp,0,sizeof(dp));
       scanf("%s%s",a+1,b+1);
       int len1=strlen(a+1);
       int len2=strlen(b+1);
       int ans=0;
       for(int i=0;i<=len1;i++)///枚举a的长度
       {
           for(int j=0;j<=len2;j++)///枚举b的长度
           {
               for(int l1=1;l1+i-1<=len1;l1++)///a的左边界
               {
                   for(int l2=1;l2+j-1<=len2;l2++)///b的左边界
                   {
                       int r1=i+l1-1;///a的右边界
                       int r2=j+l2-1;///b的右边界
                       if(i+j<=1) dp[l1][r1][l2][r2]=1;///初始化
                       else///四种状态
                       {
                          if(i>1&&a[l1]==a[r1]) dp[l1][r1][l2][r2]|=dp[l1+1][r1-1][l2][r2];
                          if(i&&j&&a[l1]==b[r2]) dp[l1][r1][l2][r2]|=dp[l1+1][r1][l2][r2-1];
                          if(i&&j&&a[r1]==b[l2]) dp[l1][r1][l2][r2]|=dp[l1][r1-1][l2+1][r2];
                          if(j>1&&b[l2]==b[r2]) dp[l1][r1][l2][r2]|=dp[l1][r1][l2+1][r2-1];

                       }
                       if(dp[l1][r1][l2][r2])
                       ans=max(ans,i+j);
                   }
               }
           }
       }
       printf("%d\n",ans);


   }

    return 0;
}