您的位置:首页 > 其它

Tyvj 1521 最长波动序列

2011-09-06 01:10 447 查看
题目:

最长波动序列

来源:

Tyvj 1521

题目大意:

给出一个数列,求其中最长的波动序列

波动序列:

a1>a2<a3>a4......

或a1<a2>a3<a4......

数据范围:

n<=1000000

样例:

4
1 2 1 1
3

做题思路:

不开数组依旧Ac,不过思路是别人的。。。

“其实就是边读边判断啦

每读一个若是符号与前一个相反(就当有大小符号)

当前所读序列波动长度就加1

同时记录当前符号

若是相同就让当前记录与之前最大的相比较 取max

并且当前长度还原成1

就降”

知识点:

DP

var
f1,t,f2,i,n,x:longint;
begin
readln(n);
read(t);f1:=1;f2:=1;
for i:=2 to n do
begin
read(x);
if x>t then
begin
t:=x;
f1:=f2+1;
end
else
if x<t then
begin
t:=x;
f2:=f1+1;
end;
end;
if f1>f2 then writeln(f1) else writeln(f2);
end.
题目来源:http://www.tyvj.cn:8080/Problem_Show.asp?id=1521
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: