网站制作知识
[luoguP2758] 编辑距离(DP)
2025-01-03 14:13  点击:0

传送门

f[i][j] 表示第一串前 i 个到第二串前 j 个的最小编辑距离

f[i][j] = f[i 1][j 1] (s1[i] == s2[j])

f[i][j] = min(f[i 1][j], f[i][j 1], f[i 1][j 1]) (s1[i] != s2[j])

边界 f[0][j] = j (1 <= j <= m)

   f[i][0] = i (1 <= i <= n)

——代码

1 #include <cstdio> 2 #include <cstring> 3 4 int n, m; 5 int f[2048][2048]; 6 char s1[2048], s2[2048]; 7 8 inline int min(int x, int y) 9 12 13 int main() 14 27 printf("%d\n", f[n][m]); 28 return 0; 29 }
View Code