zoukankan      html  css  js  c++  java
  • NOIP2012模拟赛第三弹

          跟神犇们搞了一晚上第一题,我YY的一个错误结论的正确的部分被zzm神犇证明了,然后第一题可做。第二题只会30分做法。第三题知道做法,但是估计实现的时候不是很好写,等标程看看。没测完,错了再改。

    A Wormhole

          通过反证法可得一定在1建一个虫洞,然后有两种做法。二分答案+一个zzm神犇构造的验证可搞(讨论怎么从1过来点被分成三段满足各一个性质,扫描一遍,如果有这三段外头的点说明mid不够大)。然后就是我的,发现费用关于建造点是凸的,可以三分暴力搞。我果然只会模版题啊,太水了。对拍发现跟zzm神犇一样就交了。

    program Wormhole;
    
    uses math;
    
    const FileName='Wormhole';inf=maxlongint;
    
    var ans,t,n:longint;
    
        x:array[0..200000] of longint;
    
    function  f(p:longint):longint;
    
              var i,temp:longint;
    
              begin temp:=-inf;
    
              for i:=2 to n do
    
                temp:=max(temp,min(x[i]-x[1],abs(x[p]-x[i])));
    
              ans:=min(ans,temp);exit(temp);
    
              end;
    
    procedure slove;
    
              var i,l,r,a,b,len,fa,fb:longint;
    
              begin
    
              readln(n);ans:=inf;
    
              for i:=1 to n do read(X[i]);
    
              l:=2;r:=n;
    
              while l<r-1 do begin
    
                len:=(r-l+1) div 3;
    
                a:=l+len;b:=r-len;
    
                fa:=f(a);fb:=f(b);
    
                if fa<fb
    
                  then r:=b
    
                  else l:=a;
    
                end;
    
              for i:=l to r do fa:=f(i);
    
              writeln(ans);
    
              end;
    
    begin
    
    readln(T);
    
    while T>0 do begin
    
      slove;dec(T);end;
    
    end.

    B Dual Matrices

          只会预处理前缀和,然后枚举两个矩形左上角,O((NM)^2)估计是30分。没写。不知道二维RMQ是不是可搞。

    C Caculator

          XY教过一种WS的做法,通过先确定每个运算符的优先级然后再计算。没写。

  • 相关阅读:
    数据快照
    2.21毕设进度
    2.20毕设进度
    Java读取文件,明明文件存在,却报错文件找不到
    2.19毕设进度
    2.18毕设进度
    2.17毕设进度
    2.16毕设进度
    2.15毕设进度
    2.14毕设进度
  • 原文地址:https://www.cnblogs.com/lijianlin1995/p/2756190.html
Copyright © 2011-2022 走看看