1 条题解
-
0
#include<bits/stdc++.h> #define int long long using namespace std; string s1,s2; int f[1000]; string ans; void dfs(int l1,int l2,int l3,int l4){ if(l1>l2||l3>l4)return ; for(int i=l1;i<=l2;i++){ if(s2[l3]==s1[i]){ ans+=s1[i]; string str=s2; string s; memset(f,0,sizeof(f)); for(int j=l1;j<i;j++)f[s1[j]-'A']=1; for(int j=l3;j<=l4;j++)if(f[s2[j]-'A'])s+=s2[j]; s2=s; dfs(0,i-1,0,s2.size()-1); s2=str; s=""; memset(f,0,sizeof(f)); for(int j=i+1;j<=l2;j++)f[s1[j]-'A']=1; for(int j=l3;j<=l4;j++)if(f[s2[j]-'A'])s+=s2[j]; s2=s; dfs(i+1,l2,0,s2.size()-1); s2=str; } } } signed main(){ cin>>s1>>s2; dfs(0,s1.size()-1,0,s2.size()-1); cout<<ans; return 0; } //DBEAC //ABCDE
- 1
信息
- ID
- 857
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 29
- 已通过
- 15
- 上传者