题目:
给一个数组a1, a2 ... an,找到最长的上升降子序列ab1<ab2< .. <abk,其中b1<b2<..bk。
输出长度即可。
分析:直接暴力枚举都能过。。。
代码:
const
maxn=10000;
var
a,b:array [1..maxn] of longint;
n:longint;
procedure init;
var
i:longint;
begin
readln(n);
for i:=1 to n do
read(a[i]);
for i:=1 to maxn do
b[i]:=1;
end;
procedure main;
var
i,j,ans:longint;
begin
ans:=0;
for i:=2 to n do
for j:=1 to i-1 do
if (a[i]>a[j]) and (b[i]<b[j]+1)then
b[i]:=b[j]+1;
for i:=1 to n do
if b[i]>ans then
ans:=b[i];
writeln(ans);
end;
begin
init;
main;
end.