DP 洛谷P1279 字串距離

2021-10-22 17:09:56 字數 1043 閱讀 4545

轉換題意,可以得知:

· 多餘的空格是沒有用的

· 乙個字母要麼和另一串的字母匹配要麼就與空格匹配

· 無後效性

設 f [i

][j]

f[i][j]

f[i][j

] 為 第乙個串處理完i個,第二個串處理完j個的最小距離

dp方程:

f[i][j] = min

//第乙個串的字元匹空格,第二個串的字元匹空格,上下串字元匹配

#include

#include

#include

#include

using

namespace std;

string a, b;

int n1, n2, k, w1[

3000

], w2[

3000

], f[

3000][

3000];

intmain()

for(

int i =

1; i <= n2;

++i)

f[0][

0]=0

;for

(int i =

1; i <= n1;

++i)

for(

int j =

1; j <= n2;

++j)

f[i]

[j]=

min(

min(f[i-1]

[j]+ k, f[i]

[j-1

]+ k)

, f[i-1]

[j-1]+

abs(w1[i]

-w2[j]))

;printf

("%d"

, f[n1]

[n2]);

}

洛谷 P1279 字串距離

設有字串x,我們稱在x的頭尾及中間插入任意多個空格後構成的新字串為x的擴充套件串,如字串x為 abcbcd 則字串 abcb cd a bcbcd 和 abcb cd 都是x的擴充套件串,這裡 代表空格字元。如果a1是字串a的擴充套件串,b1是字串b的擴充套件串,a1與b1具有相同的長度,那麼我捫定...

P1279 字串距離

設有字串x,我們稱在x的頭尾及中間插入任意多個空格後構成的新字串為x的擴充套件串,如字串x為 abcbcd 則字串 abcb cd a bcbcd 和 abcb cd 都是x的擴充套件串,這裡 代表空格字元。如果a1是字串a的擴充套件串,b1是字串b的擴充套件串,a1與b1具有相同的長度,那麼我捫定...

P1279 字串距離

p1279 字串距離 一看就是字串dp,然而並不會,騙分之後爆零了。以後dp題要好好想想轉移方程。f i j 表示是a串選了前i個字元,b串選了前j個字元的距離。顯然 qaq f i j min min f i 1 j k,f i j 1 k f i 1 j 1 abs a i b j 1 incl...