216 DP 字串距離

2021-09-19 20:41:10 字數 834 閱讀 8473

description

給出兩個由小寫字母組成的字串 x 和y ,我們需要算出兩個字串的距離,定義如下:

1)  我們可以在字串的頭、尾、中間插入若干空格,組成乙個新的擴充套件串

2)  對x擴充套件成擴充套件串x1,對y擴充套件成擴充套件串y1,並且令x1和y1具有相同的長度

3)  定義x1、y1的距離為每個對應的字元的距離之和,其中兩個空格的距離為0,兩個非空格字元的距離為其ascii碼之差的絕對值,乙個空格字元到任意非空格字元的距離為k

4)  對於字串x、y,必然存在兩個等長的擴充套件串x1、y1,使得x1、y1的距離達到最少,我們將這一距離定義為字串x、y的距離

input

輸入為三行,前兩行是30位以內的由小寫字母組成的字串, 第三行是整數k(0<=k<=30)

output

輸出一行為乙個整數,代表兩個字串的距離

cmo

snmn

2

7

直接dp

求匹配到si和tj的最優解。

#include #include #include using namespace std;

const int maxn = 35;

char sa[maxn], sb[maxn]; int dp[maxn][maxn];

int abs(int x)

int main()

printf("%d", dp[la][lb]);

return 0;

}

字串距離

給出兩個相同長度的由字元 a 和 b 構成的字串,定義它們的距離為對應位置不同的字元 的數量。如串 aab 與串 aba 的距離為 2 串 ba 與串 aa 的距離為 1 串 baa 和串 baa 的 距離為 0。下面給出兩個字串 s 與 t,其中 s 的長度不小於 t 的長度。我們用 s 代表 s...

字串的距離

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

編輯字串距離

題目 題意 編輯距離,又稱levenshtein距離 也叫做edit distance 是指兩個字串之間,由乙個轉成另 乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪 除乙個字元。例如將kitten轉化成sitting sitten k s sittin ...