blablablablablablablablablabla 傳送門
刪除–將字串a中的某個字元刪除,操作次數f[i-1][j] + 1
插入–在字串a的某個位置插入某個字元,操作次數f[i][j-1] + 1
替換–將字串a中的某個字元替換為另乙個字元,需要分兩種情況討論:
i.a[i]==b[j]
,操作次數f[i-1][j-1]
ii.a[i]!=b[j]
,操作次數f[i-1][j-1] + 1
f[i][j] = min
初始狀態:
f[0][i] = i
,字串a中插入i個字元
f[i][0] = i
,字串a中刪除i個字元 o(m
∗n
)o(m*n)
o(m∗n)
#include
using
namespace std;
const
int n=
1010
;int m,n,f[n]
[n];
char a[n]
,b[n]
;int main (
) cin>>m;
for(
int i=
1;i<=m;i++
)for
(int i=
1;i<=n;i++)}
cout<[m];
}
chenchen題解 最短編輯距離
blablablablablablablablablabla 傳送門 狀態表示 dp i j 表示將字串a中前i個字元編輯成字串b中前j個字元所要進行的最少操作 狀態計算,根據操作將集合劃分為3類 刪除 將字串a中的某個字元刪除,操作次數dp i 1 j 1插入 在字串a的某個位置插入某個字元,操作...
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...