1 条题解

  • 0
    @ 2025-12-2 16:19:18

    E07 线性DP 编辑距离

    // 线性DP O(n^2)
    #include<bits/stdc++.h>
    using namespace std;
    
    const int N=2010;
    char a[N],b[N];
    int n,m,f[N][N];
    
    int main(){
      scanf("%s %s",a,b);
      n=strlen(a), m=strlen(b);
      
      for(int i=1;i<=n;i++) f[i][0]=i;
      for(int i=1;i<=m;i++) f[0][i]=i;
      for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
          if(a[i-1]==b[j-1]) f[i][j]=f[i-1][j-1];
          else f[i][j]=min(min(f[i-1][j],f[i][j-1]),f[i-1][j-1])+1;
        }
      }
      printf("%d\n",f[n][m]);
    }
    
    • 1

    信息

    ID
    2037
    时间
    1000ms
    内存
    512MiB
    难度
    7
    标签
    递交数
    138
    已通过
    27
    上传者