<php>
echo “hello world";
</php>
算出ab串的LCS长度 再用ab长度之和减去LCS长度 相当于ab合并减去共有的元素
注意 数量要用 long long
数据中有空字符串
if( a[i]==a[j])dp[i][j]=dp[i-1][j-1]+1 ;
else dp[i][j]=max(dp[i-1][j],dp[i][j-1])
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
int t;
long long dp[50][50],dpp[50][50];
char ch[50],cc[50];
int main()
{
// freopen("out.txt","w",stdout);
scanf("%d",&t);
getchar();
for(int o=1;o<=t;++o) {
int ans=0;
// memset(dp,0,sizeof dp);
gets(ch+1);
gets(cc+1);
memset(dp,0,sizeof dp);
memset(dpp,0LL,sizeof dpp);
int la=strlen(ch+1),lb=strlen(cc+1);
for(int i = 0; i <= la;++i) {
dpp[i][0]=1LL;
}
for(int j = 0; j <= lb; ++j) {
dpp[0][j]=1LL;
}
for(int i = 1; i <= la; ++i) {
for(int j = 1; j <= lb; ++j) {
if(ch[i]==cc[j]) {
dp[i][j]=dp[i-1][j-1]+1;
dpp[i][j]=dpp[i-1][j-1];
}
else {
if(dp[i-1][j]>dp[i][j-1]) {
dp[i][j]=dp[i-1][j];
dpp[i][j]=dpp[i-1][j];
}
else if(dp[i][j-1]>dp[i-1][j]){
dp[i][j]=dp[i][j-1];
dpp[i][j]=dpp[i][j-1];
}
else {
dp[i][j]=dp[i-1][j];
dpp[i][j]=dpp[i-1][j]+dpp[i][j-1];
}
}
}
}
cout<<"Case #"<<o<<": "<<la+lb-dp[la][lb]<<" "<<dpp[la][lb]<<endl;
}
return 0;
}