題目 3065:
最長(zhǎng)公共子上升序列
時(shí)間限制: 2s
內(nèi)存限制: 192MB 提交: 125 解決: 28
題目描述
給定兩個(gè)整數(shù)序列,寫一個(gè)程序求它們的最長(zhǎng)上升公共子序列。
當(dāng)以下條件滿足的時(shí)候,我們將長(zhǎng)度NN的序列S1,S2,...,SN 稱為長(zhǎng)度為M的序列A1,A2,...,AM的上升子序列:
存在1≤i1<i2<...<iN≤M,使得對(duì)所有1≤j≤N,均有Sj=Aij,且對(duì)于所有的1≤j<N,均有Sj<Sj+1。
輸入格式
每個(gè)序列用兩行表示,第一行是長(zhǎng)度M(1≤M≤500),第二行是該序列的M個(gè)整數(shù)Ai(?231<=Ai<231)
輸出格式
在第一行,輸出兩個(gè)序列的最長(zhǎng)上升公共子序列的長(zhǎng)度LL。在第二行,輸出該子序列。如果有不止一個(gè)符合條件的子序列,則輸出任何一個(gè)即可。
樣例輸入
5
1 4 2 5 -12
4
-12 1 2 4
提示
零基礎(chǔ)同學(xué)可以先學(xué)習(xí)
視頻課程,包含C/C++、Python、百練、藍(lán)橋杯輔導(dǎo)、算法數(shù)據(jù)結(jié)構(gòu)等課程,提供視頻講解以及配套習(xí)題,還有老師答疑,
點(diǎn)擊這里了解課程詳情
標(biāo)簽