Tyvj 1521 最长波动序列

题目:

 最长波动序列

来源:

 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值