mnsday1t1

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

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

#include<iostream>
#include<stdio.h>
using namespace std;
char s[1010],t[1010];
int main()
{
    int n,k,ans=0;
    scanf("%d%d%s%s",&n,&k,s+1,t+1);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        {
            int x=i,y=j,K=0;
            while(x>=1&&y>=1&&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 0;
} 
原文地址:https://www.cnblogs.com/19992147orz/p/6014374.html