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 開...