求最長不下降序列 SSL 1459

2021-07-27 19:35:17 字數 919 閱讀 2280

description

設有n(n<=1000)個不相同的整數(小於32767)組成的數列,記為:

a1,a2,...,an,其中任意兩個數不相同。

例如:3,18,7,14,10,12,23,41,16,24。

若有 且有 。則稱為長度為e的不下降序列。如上例中,3,18,23,24為乙個長度為4的不下降序列,同時也有3,7,10,12,16,24長度為6的不下降序列。程式要求,當原始數列給出後,求出最長的不下降數列的長度。

input

output

sample input103

1871410

1223

4116

24sample output

6題解:b[i]表示第i個數到n個數的最長不下降長度。

f[i] = max (j = i+1…n, 且a[i] < a[j])。

f[n]=1;

var n,i,j,t:longint;

a,b:array[1..2000]of longint;

begin

readln(n);

for i:=1

to n do

read(a[i]);

b[n]:=1;

for i:=n-1

downto1do

begin

t:=1;

for j:=i+1

to n do

if (a[i]and(b[j]+1>t) then t:=b[j]+1;

b[i]:=t;

end;

t:=0;

for i:=1

to n do

if b[i]>t then t:=b[i];

write(t);

end.

求最長不下降序列

求最長不下降序列 time limit 1000ms memory limit 65536k total submit 398 accepted 171 description 設有n n 1000 個不相同的整數 小於32767 組成的數列,記為 a1,a2,an,其中任意兩個數不相同。例如 3,...

求最長不下降序列

求最長不下降序列 time limit 1000ms memory limit 65536k total submit 402 accepted 174 description 設有n n 1000 個不相同的整數 小於32767 組成的數列,記為 a1,a2,an,其中任意兩個數不相同。例如 3,...

求最長不下降序列

題目描述 設有由n個不相同的整數組成的數列,記作 b 1 b 2 b 3 b n 且b i b j i j 若存在i1 根據動態規劃的原理,由後往前進行搜尋 當然從前往後也不是不行 1 對b n 來說,由於它是最後乙個數,所以當從b n 開始查詢時,只存在長度為1的不下降序列。2 若從b n 1 開...