1808:公共子串行
總時間限制: 1000ms 記憶體限制: 65536kb
描述我們稱序列z = < z1, z2, …, zk >是序列x = < x1, x2, …, xm >的子串行當且僅當存在 嚴格上公升 的序列< i1, i2, …, ik >,使得對j = 1, 2, … ,k, 有xij = zj。比如z = < a, b, f, c > 是x = < a, b, c, f, b, c >的子串行。
現在給出兩個序列x和y,你的任務是找到x和y的最大公共子串行,也就是說要找到乙個最長的序列z,使得z既是x的子串行也是y的子串行。
輸入輸入包括多組測試資料。每組資料報括一行,給出兩個長度不超過200的字串,表示兩個序列。兩個字串之間由若干個空格隔開。
輸出對每組輸入資料,輸出一行,給出兩個序列的最大公共子串行的長度。
樣例輸入
abcfbc abfcab
programming contest
abcd mnp
樣例輸出42
0**翻譯自southeastern europe 2003的試題
#include
#include
using
namespace std;
int l[
1000][
1000];
intcommonorder
(char x,
int m,
char y,
int n)
intmain()
int m=str1.
length()
;int n=str2.
length()
;for
(int i=
1;i<=m;i++
) x[i]
=str1[i-1]
;for
(int j=
1;j<=n;j++
) y[j]
=str2[j-1]
; cout<<
commonorder
(x,m,y,n)
;return0;
}
OpenJudge P1808 公共子串行 DP
總時間限制 1000ms 記憶體限制 65536kb 描述 我們稱序列z z1,z2,zk 是序列x x1,x2,xm 的子串行當且僅當存在 嚴格上公升 的序列 i1,i2,ik 使得對j 1,2,k,有xij zj。比如z a,b,f,c 是x a,b,c,f,b,c 的子串行。現在給出兩個序列x...
OpenJudge Noi 1808 公共子串行
總時間限制 1000ms 記憶體限制 65536kb 描述 我們稱序列z z 1,z 2,z k 是序列x x 1,x 2,x m 的子串行當且僅當存在嚴格上公升的序列 i 1,i 2,i k 使得對j 1,2,k,有x ij z j。比如z a,b,f,c 是x a,b,c,f,b,c 的子串行。...
公共子串行
03 公共子串行 描述我們稱序列z z1,z2,zk 是序列x x1,x2,xm 的子串行,當且僅當存在嚴格上公升的序列 i1,i2,ik 使得對j 1,2,k,有xij zj。比如z a,b,f,c 是x a,b,c,f,b,c 的子串行。現在給出兩個序列x和y,你的任務是找到x和y的最大公共子串...