描述
給定3個字串,求它們的最長公共子串行。
輸入
第一行乙個整數n,表示三個字串的長度
接下來三行,每行是乙個長度為n只包含小寫字母的字串。
輸出
輸出最長公共子串行的長度。
輸入樣例
4abac
abbc
cbca
輸出樣例
2提示
30% n<=10
100% n<=120
三維dp,道理和兩個字串的lcs差不多。
狀態轉移方程:
f[ i ][ j ][ k ]=max(f[ i ][ j ][ k - 1 ],max(f[ i - 1 ][ j ][ k ],f[ i ][ j - 1 ][ k ]));
if(a[ i ]==b[ j ]&&a[ i ]==c[ k ])
f[ i ][ j ][ k ]=max(f[ i ][ j ][ k ],f[ i - 1 ][ j - 1 ][ k - 1 ]+1);
1 #include2 #include3 #include4const
int maxn=155;5
char
a[maxn],b[maxn],c[maxn];
6int
f[maxn][maxn][maxn];
7int
lena,lenb,lenc;
8 inline void
read()
916 inline int max(int x,int
y)17
21 inline void
solve1()
2235 inline void
solve2()
3645 printf("%d"
,f[lena][lenb][lenc]);
46return;47
}48intmain()
49
NOIP模擬題 括號序列
題目描述 課堂上,felix 剛剛學習了關於括號序列的知識。括號序列是乙個只由左括號 和右括號 構成的序列 進一步的,乙個合法的括號序列是指左括號和右括號能 夠 一一匹配的序列。如果用規範的語言說明,乙個合法的括號序列可以有以下三種形式 1 s 空串 s 是乙個合法的括號序列 2 s xy,其中 x...
NOIP模擬 序列
問題描述 乙個序列被稱為有趣的序列是它的所有的子串擁有乙個唯一的整數 這個整數在整個序 列中只出現過一次 給你乙個序列的整數,問你它是否是有趣的。輸入格式 第一行 t,表示資料組數。接下來每組資料第一行乙個 n。接下來是 n 個整數,均小於 10 9。輸出格式 輸出 boring 或者 non bo...
NOIP模擬 序列操作
2017.11.06t2 好氣,我這道題寫的權值線段樹,結果維護的時候搞忘清零了,只有 20 分,加上清零就 a了,當然我是指的評測機上ac,在 oj 上要 t 一些點,有點小氣。我用權值線段樹,在修改的時候加了乙個 lo g2h 但我的詢問是 lo g2h 的,比較已經過了的 修改是 o h 詢問...