码迷,mamicode.com
首页 > 其他好文 > 详细

[Bzoj]1012最大数maxnumber

时间:2016-08-24 14:23:16      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

献上黑历史:

技术分享

CE的几次是因为蒟蒻内外循环用同一个量,ce++

WA是因为蒟蒻不会写线段树,写了个单调队列,OK——W

TLE是因为蒟蒻脑子有病:

while m<>0 do begin ………… end;没有加dec(m);

RE是因为蒟蒻数组开太小:第一次开110000;第二次开200000;结果就…………

AC是因为数组开大一点,学学MZL大神的线段树,数组开到800005(⊙o⊙)…

sb代码献上,并在此献上膝盖给MZL

技术分享
var len,x,n,d,m,lst:longint;
op:char;
mx:array[1..200000]of longint;
function max(a,b:longint):longint;
begin
 if a>b then exit(a)
 else exit(b);
end;
procedure up(rt:longint);
begin
 mx[rt]:=max(mx[rt*2],mx[rt*2+1]);
end;
procedure update(p,v,l,r,rt:longint);
var m:longint;
begin
 if l=r then
  begin
   mx[rt]:=v;
   exit;
  end;
  m:=(l+r)div 2;
  if m>=p then update(p,v,l,m,rt*2)
  else update(p,v,m+1,r,rt*2+1);
 up(rt);
end;
function query(left,right,l,r,rt:longint):longint;
var m,ret:longint;
begin
 if (left<=l)and(right>=r) then exit(mx[rt]);
 m:=(l+r)div 2;
 ret:=0;
 if left<=m then ret:=max(ret,query(left,right,l,m,rt*2));
 if right>m then ret:=max(ret,query(left,right,m+1,r,rt*2+1));
 exit(ret);
end;
begin
 x:=0;len:=0;
 readln(n,d);
 m:=n;
 while m<>0 do
  begin
   readln(op,x);
   if op=A then
    begin
     inc(len);
     update(len,(x+lst)mod d,1,n,1);
    end
    else
     begin
     lst:=query(len-x+1,len,1,n,1);
      writeln(lst);
     end;
     dec(m);
   end;
end.
View Code

ORZ MZL 阿门

技术分享{数组}

ORZ MZL 

技术分享

献上膝盖,大神一次过………………

蒟蒻狂W/R/C/T…………

技术分享技术分享技术分享技术分享技术分享

 

[Bzoj]1012最大数maxnumber

标签:

原文地址:http://www.cnblogs.com/Jrzn/p/5802731.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!