【bzoj 十连测】[noip2016第一场]Problem A: String Master(暴力)
【题解】【暴力】
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char a[310],b[310];
int len,k,ans;
inline void solve()
{
int i,j;
for(i=1;i<=len;++i)
for(j=1;j<=len;++j)
if(a[i]==b[j]&&len-j+1>=ans&&len-i+1>=ans)
{
int t1=i,t2=j,sum=0;
while(t1<=len&&t2<=len&&a[t1]==b[t2]) t1++,t2++,sum++;
if(ans<sum) ans=sum;
}
printf("%d\n",ans);
}
int main()
{
//freopen("master.in","r",stdin);
//freopen("master.out","w",stdout);
int i,j;
scanf("%d%d",&len,&k);
scanf("%s%s",a+1,b+1);
if(len==k) {printf("%d\n",len); return 0;}
if(!k) {solve(); return 0;}
for(i=1;i<=len;++i)
for(j=1;j<=len;++j)
if(len-j+1>=ans&&len-i+1>=ans)
{
int t1=i,t2=j,sum=0,c=0;
while(t1<=len&&t2<=len&&(c<k||a[t1]==b[t2]))
if(a[t1]!=b[t2]) c++,t1++,t2++,sum++;
else t1++,t2++,sum++;
if(ans<sum) ans=sum;
}
printf("%d\n",ans);
return 0;
}
既然无能更改,又何必枉自寻烦忧