最長公共上公升子串行

2021-07-23 09:51:23 字數 801 閱讀 4629

【題目描述】

給定兩個整數序列,求它們的最長上公升公共子串行。

【輸入描述】

輸入兩組資料,每組資料代表乙個整數序列,其輸入格式為:

第一行輸入長度m(1 <= m <= 500);

第二行輸入該序列的m個整數ai(-231

<= ai

< 231)。

【輸出描述】

輸出共兩行。

第一行輸出兩個序列的最長上公升公共子串行的長度l;

第二行輸出該子串行,如果有不止乙個符合條件的子串行,則輸出任何乙個即可。

【輸入樣例】 5

1 4 2 5 -12 4

-12 1 2 4

【輸出樣例】 2

1 4

源**:

#include

int m,n,s,num=1,ans(0),h[501],i1[501],i2[501],f[501][501]=;

intmain()

}for (int a=1;a<=n;a++)

ans=ans>f[m][a]?ans:f[m][a];

printf(

"%d\n

",ans);

if (ans) //

非0情況。

h[num]=i2[s];

while (m-1) //

逐行查詢。

}for (int a=num;a>0;a--) //

任意的一組合法答案。

printf("

%d "

,h[a]);

}return0;

}

最長公共上公升子串行

首先,在 a i b j 的時候有 dp i j dp i 1 j 為什麼呢?因為 dp i j 是以b j 為結尾的 lcia 如果dp i j 0 那麼就說明 a 1 a i 中必然有乙個字元 a k 等於b j 如果dp i j 等於0 呢?那賦值與否都沒有什麼影響了 因為 a k a i 那...

最長公共(上公升)子串行

題目 common subsequence 題目描述 給定兩個字串a和b 或數字序列 求乙個字串,使得這個字串是所給兩個字串的最長公共部分 可以不連續 動態規劃的做法 時間複雜度,o n m include include include include using namespace std co...

最長公共上公升子串行

熊大媽的奶牛在小沐沐的薰陶下開始研究資訊題目。小沐沐先讓奶牛研究了最長上公升子串行,再讓他們研究了最長公共子串行,現在又讓他們研究最長公共上公升子串行了。小沐沐說,對於兩個數列a和b,如果它們都包含一段位置不一定連續的數,且數值是嚴格遞增的,那麼稱這一段數是兩個數列的公共上公升子串行,而所有的公共上...