時間限制:
3000 ms | 記憶體限制:
65535 kb
難度:3 描述
咱們就不拐彎抹角了,如題,需要你做的就是寫乙個程式,得出最長公共子串行。
tip:最長公共子串行也稱作最長公共子串(不要求連續),英文縮寫為lcs(longest common subsequence)。其定義是,乙個序列 s ,如果分別是兩個或多個已知序列的子串行,且是所有符合此條件序列中最長的,則 s 稱為已知序列的最長公共子串行。
輸入第一行給出乙個整數n(0
輸出每組測試資料輸出乙個整數,表示最長公共子串行長度。每組結果佔一行。
樣例輸入
2asdf
adfsd
123abc
abc123abc
樣例輸出
36
#include#include#includeusing namespace std;
char str1[1001];
char str2[1001];
int a[1000][1000];
int n,m;
int main(){
int t;
scanf("%d",&t);
getchar();
while(t--){
int i,j,k;
memset(a,0,sizeof(a));
scanf("%s",str1);
scanf("%s",str2);
n=strlen(str1);
m=strlen(str2);
for(i=0;i
ny36 最長公共子串行
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述咱們就不拐彎抹角了,如題,需要你做的就是寫乙個程式,得出最長公共子串行。tip 最長公共子串行也稱作最長公共子串 不要求連續 英文縮寫為lcs longest common subsequence 其定義是,乙個序列 s 如果分別...
最長公共子串行 動態規劃
經常會遇到複雜問題不能簡單地分解成幾個子問題,而會分解出一系列的子問題。簡單地採用把大問題分解成子問題,並綜合子問題的解匯出大問題的解的方法,問題求解耗時會按問題規模呈冪級數增加。為了節約重複求相同子問題的時間,引入乙個陣列,不管它們是否對最終解有用,把所有子問題的解存於該陣列中,這就是動態規劃法所...
最長公共子串行 動態規劃
關於用動態規劃法求兩個序列的最長公共子串行問題的相關知識見 王曉東 計算機演算法設計與分析 第三章。注意,這裡所指的最長公共子串行是可以不相鄰的,與平常所說的最長公共子串 相鄰的 不一樣。直接上 lcs.h ifndef lcs h define lcs h class lcstring endif...