Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
36243 | hi_hi | 【S】T4 | C++ | 运行出错 | 0 | 0 MS | 260 KB | 1242 | 2025-02-10 16:16:21 |
#include<bits/stdc++.h> using namespace std; int k0,dp[55][55],ls,lt,ans[10006]; string s,t,tt; int main(){ freopen("edit.in","r",stdin); freopen("edit.out","w",stdout); scanf("%d",&k0); cin>>s>>t; ls=s.length(),lt=t.length(); s=" "+s,t=" "+t; memset(dp,0x3f,sizeof(dp)); dp[0][0]=0; for(int I=1;I<=lt;I++){ for(int J=I;J<=lt;J++){ memset(dp,0x3f,sizeof(dp)); for(int i=1;i<=J-I+1;i++)dp[0][i]=i; for(int i=1;i<=ls;i++)dp[i][0]=i; dp[0][0]=0; for(int i=I;i<=J;i++){ tt[i-I+1]=t[i]; } for(int i=1;i<=ls;i++){ for(int j=1;j<=J-I+1;j++){ if(s[i]==tt[j]){ dp[i][j]=min(dp[i-1][j-1],dp[i][j]); dp[i][j]=min(dp[i-1][j]+1,min(dp[i][j-1]+1,dp[i][j])); } else{ dp[i][j]=min(dp[i-1][j-1]+1,min(dp[i][j-1]+1,min(dp[i][j],dp[i][j-1]+1))); } } } ans[dp[ls][J-I+1]]++; } } for(int i=0;i<=k0;i++){ printf("%d\n",ans[i]); } }