zoukankan      html  css  js  c++  java
  • Antimonotonicity (Standard IO)

    题意/Description:

         给你1-N的一个排列,数列中的数字互不相等,要求找出最长的子序列a。

           满足a1 > a2,a2 < a3,a3 > a4,a4 < a5……

     

    读入/Input

           T 代表T组数据 T<=50
            每组数据一行: n 代表给你n个数,然后就是n个数 N<=30000

     

    输出/Output

           T行 每行一个数:
           对于每组数据输出最长子序列的长度

     

    题解/solution

           开始做的时候,没看清题目。要注意是子序列,暴力吧。

     

    代码/Code

    var
     a,f:array[1..30001] of longint;
     nm,n,ans:longint;
    
    procedure main;
    var
      i:longint;
    begin
      ans:=1;
      f[1]:=a[1];
      for i:=2 to n do
        begin
          if (ans+1) mod 2=1 then
            begin
              if a[i]>f[ans] then
                begin
                  inc(ans);
                  f[ans]:=a[i];
                end else f[ans]:=a[i];
            end else
            begin
              if a[i]<f[ans] then
                begin
                  inc(ans);
                  f[ans]:=a[i];
                end else f[ans]:=a[i];
            end;
        end;
      writeln(ans);
    end;
    
    procedure init;
    var
      i,k:longint;
    begin
      readln(nm);
      for k:=1 to nm do
        begin
          fillchar(f,sizeof(f),0);
          fillchar(a,sizeof(a),0);
          read(n);
          for i:=1 to n do
            read(a[i]);
          main;
          readln;
        end;
    end;
    
    begin
      init;
    end.
    



  • 相关阅读:
    web应用程序的状态管理
    web学习笔记二
    java Web 学习笔记一
    简述Bootstrap栅格布局方式
    CSS3笔记
    CSS 笔记
    初识HTML流水笔记
    数据库初识
    java流的操作
    Java 套接字使用
  • 原文地址:https://www.cnblogs.com/zyx-crying/p/9319646.html
Copyright © 2011-2022 走看看