• bzoj2096


    本来也不打算写这道题的解题报告的,因为比较水
    直接维护两个单调队列(最大值,最小值)随便弄弄就行了
    但是我开始疯狂不知道为什么的RE,然后实在没办法找root要了数据
    测了之后……王苍,根本就没有错啊……
    我就去向root反映,root测了一下以前AC的pascal程序……
    王苍……又都RE了,实在是感人肺腑……

     1 var q1,q2:array[0..10000010] of longint;
     2     a:array[0..10000010] of longint;
     3     t,i,l1,l2,r1,r2,n,ans:longint;
     4     k:longint;
     5 
     6 function max(a,b:longint):longint;
     7   begin
     8     if a>b then exit(a) else exit(b);
     9   end;
    10 
    11 begin
    12   readln(k,n);
    13   for i:=1 to n do
    14     read(a[i]);
    15   t:=1;
    16   l1:=1;
    17   l2:=1;
    18   for i:=1 to n do
    19   begin
    20     while (l1<=r1) and (a[i]>=a[q1[r1]]) do dec(r1);
    21     while (l2<=r2) and (a[i]<=a[q2[r2]]) do dec(r2);
    22     inc(r1);
    23     q1[r1]:=i;
    24     inc(r2);
    25     q2[r2]:=i;
    26     while (l1<=r1) and (l2<=r2) and (a[q1[l1]]-a[q2[l2]]>k) do
    27       if q1[l1]<q2[l2] then
    28       begin
    29         t:=q1[l1]+1;
    30         inc(l1);
    31       end
    32       else begin
    33         t:=q2[l2]+1;
    34         inc(l2);
    35       end;
    36     ans:=max(ans,i-t+1);
    37   end;
    38   writeln(ans);
    39 end.
    View Code
  • 相关阅读:
    mysql的锁
    设计模式相关
    分布式缓存
    myBatis相关
    mevan相关
    Java 一些缩写的解释
    Spring相关
    Java中PreparedStatement和Statement的用法区别
    Java线程池
    spring中的事务传播机制
  • 原文地址:https://www.cnblogs.com/phile/p/4473077.html
Copyright © 2020-2023  润新知