回文字串 最長公共子串行 DP

2021-07-28 04:51:41 字數 869 閱讀 5681

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:4 描述

所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的,比如"aba"。當然,我們給你的問題不會再簡單到判斷乙個字串是不是回文字串。現在要求你,給你乙個字串,可在任意位置新增字元,最少再新增幾個字元,可以使這個字串成為回文字串。

輸入第一行給出整數n(0

輸出每行輸出所需新增的最少字元數

樣例輸入

1

ab3bd

樣例輸出

2

**ioi 2000

上傳者

hzyqazasdf

思路 可以求str和其翻轉後的字串的  公共子串行(因為題目上是說,最少新增,那麼新增的位置是由我們確定的),那麼少的那幾個字元都是要新增的。。

**  

#include#include#include#include#include#include#include#define inf 0x3f3f3f

#define m 1000+10

using namespace std;

char str[m];

char ss[m];

int dp[m][m];

int main()

memset(dp,0,sizeof(dp));

for(int i=1;i<=strlen(str);i++)

}printf("%d\n",strlen(str)-dp[strlen(str)][strlen(str)]);

} return 0;

}

回文字串 最長公共子串行

時間限制 3秒記憶體限制 128兆 題目描述 所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的,比如 aba 當然,我們給你的問題不會再簡單到判斷乙個字串是不是回文字串。現在要求你,給你乙個字串,可在任意位置新增字元,最少再新增幾個字元,可以使這個字串成為回文字串。輸入第一行給出整數n...

最長公共子串行(LCS)與最長公共子串 DP

1 最長公共子串行 lcs 與最長公共子串 dp 子串應該比較好理解,至於什麼是子串行,這裡給出乙個例子 有兩個母串 比如序列bo,bg,lg在母串cnblogs與belong中都出現過並且出現順序與母串保持一致,我們將其稱為公共子串行。最長公共子串行 longest common subseque...

回文串 LCS(最長公共子串行)

乙個字串如果從左往右讀和從右往左讀都一樣,那麼這個字串是乙個回文串。例如 abcba abccba 蒜頭君想通過新增字元把乙個非回文字串變成回文串。例如 trit 可以新增乙個 i 變成回文串 tirit 請你用程式計算出,對於乙個給定的字串,最少需要新增幾個字元,才能變成回文串。輸入乙個長度為 n...