E07 线性DP P2758 编辑距离
// 线性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]); }
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号