chenchen題解 最短編輯距離

2021-10-23 09:55:38 字數 897 閱讀 5680

blablablablablablablablablabla 傳送門

狀態表示:

dp[i][j]表示將字串a中前i個字元編輯成字串b中前j個字元所要進行的最少操作

狀態計算,根據操作將集合劃分為3類:

刪除–將字串a中的某個字元刪除,操作次數dp[i-1][j] + 1插入–在字串a的某個位置插入某個字元,操作次數dp[i][j-1] + 1替換–將字串a中的某個字元替換為另乙個字元,需要分兩種情況討論:

i.a[i]==b[j],操作次數dp[i-1][j-1]

ii.a[i]!=b[j],操作次數dp[i-1][j-1] + 1

iii.dp[i][j] = min

初始狀態:

f[0][i] = i,字串a中插入i個字元

f[i][0] = i,字串a中刪除i個字元 o(m

∗n2)

o(m*n^2)

o(m∗n2

)

#include

using

namespace std;

const

int n =

1010

;int dp[n]

[n];

char a[n]

, b[n]

;int

main()

printf

("%d\n"

, dp[n]

[m])

;return0;

}

lxfysdssgj

chenchen題解 最短編輯距離

blablablablablablablablablabla 傳送門 刪除 將字串a中的某個字元刪除,操作次數f i 1 j 1插入 在字串a的某個位置插入某個字元,操作次數f i j 1 1替換 將字串a中的某個字元替換為另乙個字元,需要分兩種情況討論 i.a i b j 操作次數f i 1 j ...

chenchen題解 Trie字串統計

維護乙個字串集合,支援兩種操作 1.i x 向集合中插入乙個字串x q x 詢問乙個字串在集合 現了多少次。共有n個操作,輸入的字串總長度不超過 10 5 字串僅包含小寫英文本母。輸入格式 第一行包含整數n,表示運算元。接下來n行,每行包含乙個操作指令,指令為 i xix 或 q xqx 中的一種。...

chenchen題解 最長不下降子串行

blablablablablablablablablabla 傳送門 dp題狀態表示 dp i 表示到i個字元的最長不下降子串行的長度 狀態轉移 每當當前的子串行為上公升且長度大於maxx時,就更新maxx o n 2 o n 2 o n2 include using namespace std c...