【题目描述】
传送门
【题目分析】
刚开始想了一会没有想到什么很好的算法,看到了长度最多为100,就知道自己想的没有什么意义了,直接暴力,把每一种填法都试一下就知道了。适当剪枝一下(一个简单的乐观函数)
【AC代码】
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<climits>
#include<queue>
#include<vector>
#include<set>
#include<map>
using namespace std;typedef long long ll;
const int INF=0x3f3f3f3f;
const int MAXN=2e2+5;
char s1[MAXN],s2[MAXN];int ans,len;int main()
{int len1,len2;bool flag;while(~scanf("%s%s",s1,s2)){len1=strlen(s1); len2=strlen(s2);ans=len1+len2;for(int i=0;i<len1;i++){len=max(len1,i+len2);if(len>=ans) continue;flag=true;int u=i; int v=0;while(u<len1 && v<len2){if(s1[u]-'0'+s2[v]-'0'>3){flag=false;break;}u++; v++;}if(flag)ans=len;}for(int i=0;i<len2;i++){len=max(len2,i+len1);if(len>=ans) continue;flag=true;int v=i; int u=0;while(u<len1 && v<len2){if(s2[v]-'0'+s1[u]-'0'>3){flag=false;break;}u++; v++;}if(flag)ans=len;}printf("%d\n",ans);}return 0;
}