比較經典的問題,題意不多說了。跟最長公共子串行(lcs)類似。
dp[i][j]表示a字串0~i-1,b字串0~j-1最少編輯次數。
要是a[i] == b[j]的話,此時就不用改變,dp[i][j] = dp[i - 1][j - 1]
否則dp[i][j] = min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]) + 1
1//#pragma comment(linker, "/stack:102400000, 102400000")
2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include
12 #include 13
using
namespace
std;
14 typedef long
long
ll;15 typedef pair p;
16const
int n = 1e3 + 5;17
intdp[n][n];
18char
a[n], b[n];
1920
intmain()
2131
for(int i = 1; i <= m; ++i)
37for(int i = 2; i <= n; ++i) else44}
45}46 cout << dp[n][m] <48return0;
49 }
51nod 1183 編輯距離 dp
1183 編輯距離 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 編輯距離,又稱levenshtein距離 也叫做edit distance 是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字...
51Nod 1183 編輯距離(dp)
題意 編輯距離,又稱levenshtein距離 也叫做edit distance 是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。例如將kitten一字轉成sitting sitten k s sittin e i ...
51nod 1183 編輯距離 (dp)
編輯距離,又稱levenshtein距離 也叫做edit distance 是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。例如將kitten一字轉成sitting sitten k s sittin e i sit...