1 条题解

  • 0
    @ 2025-2-14 21:20:42

    Pascal :

    var i,j,k,max,n:longint;a,b,f:array[0..10000] of longint;
    ok:array[0..50000] of boolean;
    begin
        readln(n);
        for i:=1 to n do
         read(a[i]);
        b[1]:=1;
        f[1]:=1;
        for i:=2 to n+1 do
         begin
             max:=0;
             f[i]:=1;
             for j:=i-1 downto 1 do
              if (a[i]<a[j]) then
               if b[j]>max then
                begin
                   max:=b[j];
                   fillchar(ok,sizeof(ok),#1);
                   ok[a[j]]:=false;
                   f[i]:=f[j];
                end
                else if(b[j]=max) and (ok[a[j]]) then
                  begin
                      ok[a[j]]:=false;
                      f[i]:=f[i]+f[j];
                  end;
                b[i]:=max+1;
         end;
        writeln(b[n+1]-1,' ',f[n+1]);
    end.
    
    • 1

    信息

    ID
    826
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者