51Nod 1183 編輯距離(DP)

2021-09-09 02:12:40 字數 948 閱讀 3390

【題目描述】

【思路】

設 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...