mnsday1t1

时间:2023-03-09 09:46:49
mnsday1t1

贪心地选取两个后缀,然后往前补全,贪心地补全前k个不同的字符

我写了个沙茶dp,结果T掉了,明明都是n3的。。。

#include<iostream>
#include<stdio.h>
using namespace std;
char s[],t[];
int main()
{
int n,k,ans=;
scanf("%d%d%s%s",&n,&k,s+,t+);
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
{
int x=i,y=j,K=;
while(x>=&&y>=&&K<=k)
{
if(s[x]!=t[y]&&K==k)break;
if(s[x]!=t[y]&&K<k)K++;
x--;y--;
}
ans=max(ans,j-y);
}
cout<<ans<<endl;
return ;
}