【題目描述】
【思路】
設 d p[
i][j
]dp[i][j]
dp[i][
j]表示把字串a的前i個字元變成字串b的前j個字元的編輯距離,有轉移方程
d p[
i+1]
[j+1
]=dp[i][j]+(a[i]==b[j] \ ? \ 0: \ 1) \\ dp[i][j+1]+1 \\ dp[i+1][j]+1 \end
dp[i+1
][j+
1]=⎩
⎪⎨⎪⎧
dp[
i][j
]+(a
[i]=
=b[j
]?0:
1)dp
[i][
j+1]
+1dp
[i+1
][j]
+1第一項表示在將a的前i項變成b的前j項的基礎上再新增乙個字元,如果字元不同則修改
第二項表示將a的前i+1項刪掉最後1項,再將剩下的i項變為b的前j+1項
第三項表示將a的前i+1項變成b的前j項,再新增乙個字元變為b的前j+1項
#includeusing namespace std;
const int inf=2e9;
const int maxn=1005;
int lens,lent;
char s[maxn],t[maxn];
int dp[maxn][maxn];
int main()
} printf("%d\n",dp[lens][lent]);
return 0;
}
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...