DP 最長公共子串行 LCS

2021-06-23 01:19:11 字數 827 閱讀 3402

【題目**】poj 1458

【題目簡述】求兩個字串的最長公共子串行的長度。

【題目分析】這是一道經典的lcs問題,用dp來解決。

【**】

#include #include #include #define mem(x) memset((x),0,sizeof((x)))

#define maxn 10+1000

using namespace std;

char a[maxn],b[maxn];

int res[maxn][maxn];

void init()

int main()

}cout<

【題目**】 zoj 1642

【題目分析】最長公共子串行的變形,思想上是一樣的,lcs是在字元相同時加1,這個題是加上題目中給出的bonus

【**】

#include #include #include #define maxn 10+2000

using namespace std;

char a[maxn],b[maxn];

struct nodet[maxn];

int res[maxn][maxn];

void init()

int find(char ch)

int main()

scanf("%s%s",a+1,b+1);

int len_a = strlen(a+1);

int len_b = strlen(b+1);

for(int i = 1; i <= len_a; i++)

else}}

cout<

dp 最長公共子串行 LCS

給定兩個字串 text1 和 text2,返回這兩個字串的最長公共子串行。乙個字串的 子串行 是指這樣乙個新的字串 它是由原字串在不改變字元的相對順序的情況下刪除某些字元 也可以不刪除任何字元 後組成的新字串。例如,ace 是 abcde 的子串行,但 aec 不是 abcde 的子串行。兩個字串的...

dp 最長公共子串行(LCS)

字串行 與 字元字串的區別 序列是可以不連續的字串 字串必須要是連續的 問題描述 給定兩串字串 abcde 和 acdf 找出 2 串中相同的字串行,觀察知 相同的字串行為 acd 方法一 暴力解決 對於乙個長度為 n 的串 它的字串總共有 2 n 個,在用著 2 n 個字串與另乙個長度為 m 的串...

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

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