UESTC 1006 最長上公升子串行

2021-09-30 14:19:24 字數 862 閱讀 8226

乙個數的序列b=(b1,b2,⋯,bs)b=(b1,b2,⋯,bs),當b1有多組測試資料。輸入的第一行是整數tt(0對應每組輸入,先輸出最長最小的上公升子串行長度,再輸出最長最小的上公升子串行,佔一行。每個數後應有乙個空格,該行不能有其它多餘的符號。

1 7 1 7 3 5 9 4 8

sample output

4 1 3 4 8

最長上公升子串行

簡單dp:

相同子問題:

以每個a[i]為最後乙個節點的陣列的最長上公升子串行

狀態轉移方程:

偽**:

maxlen (k) = max ( maxlen (i):1#include

#include

#include

#include

using

namespace

std;

#define n 1000

int a[n];

int a;

int maxl[n];

int main()

int i,j,m;

int maxlen=1;

for(i=1;ifor(j=0;jif(a[j]1));

//狀態轉移方程

for(i=0;iif(maxlenint num=maxlen;

//求出最長子序列的長度

for(m=a-1;m>=0;m--)

if(maxl[m]==num)//記錄最長上公升子串行

cout

<" ";

while(!s.empty())

cout

}return

0;}

UESTC 1006 最長上公升序列 腦洞 簡單dp

乙個數的序列b b1,b2,bs 當b1 的時候,我們稱這個序列是上公升的。對於給定的乙個序列a a1,a2,an 我們可以得到一些上公升的子串行 a i1,a i2,aik 這裡1 i1 n。比如,對於序列 1 7,3 5,9 4,8 有它的一些上公升子串行,如 1 7 3 4,8 等等。這些子串...

Dp 最長上公升子串 最長上公升子串行

乙個數的子串bi,當b1 b2 bs的時候,我們稱這個子串是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串 ai1,ai2,aik 這裡1 i1 i2 ik n。如 對於序列 1,7,3,5,9,4,8 有它的一些上公升子串,如 1,7 3,5,9 等等。這些子串中最長...

最長上公升子串行

問題描述 乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 ik n。比如,對於序列 1,7,3,5,9,4,8 有它的一些上公升子串行,如 1,7 3,4,8 等等...