POJ3356 AGTC 題解 最短編輯距離問題

2022-05-19 22:02:31 字數 495 閱讀 5290

題目大意:

求:由字串 s 通過下列三種操作

插入乙個字元;

刪除乙個字元;

改變乙個字元

變換到字串 t 所需要的最少操作次數(亦即最短編輯距離問題)

解題思路:

定義狀態 \(f[i][j]\) 表示 \(s[0..i]\) 和 \(t[0..j]\) 合併所需的最小花費,則可得狀態轉移方程為(字串座標從 \(1\) 開始,\(0\) 表示乙個都沒選):

實現**如下:

#include #include using namespace std;

const int maxn = 1010;

int n, m, f[maxn][maxn];

char s[maxn], t[maxn];

int main()

}printf("%d\n", f[n][m]);

}return 0;

}

poj 3356 求最短編輯距離

題目大意 給定兩個字串x,y,要你求出x經過插入,刪除,替換變成y所要的最少操作,即編輯距離。當x i y j 時,i和j不需要編輯,要麼刪除,要麼插入,要麼替換 dp i j min dp i 1 j 1 dp i 1 j 1,dp i j 1 1 當x i y i 時,i和j不需要編輯 dp i...

編輯距離 poj 3356

include define n 1002 char src null,des null int m,n int dis n n main int i,j,k while scanf d m eof src char malloc sizeof char m 1 scanf s src scanf ...

最小編輯距離 poj3356

我開始讀題的時候以為弄錯提了。看來讀題還是有待提高 題意是 給定兩個串,乙個a,b,讓a變成b 有兩種操作 1 增加乙個字元 2 減少乙個字元 3 轉換乙個字元 每一次操作算一次運算元,問你最小的運算元 在華南農業大學的acm群裡有人問這道題,後來翻了翻,還是挺有意思的,開始以為是最長公共子串,後來...