【題目**】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...