Codeforces Round #250 D

编程入门 行业动态 更新时间:2024-10-07 16:20:16

<a href=https://www.elefans.com/category/jswz/34/1770097.html style=Codeforces Round #250 D"/>

Codeforces Round #250 D

题目大意

  • 有三种操作:求和,区间取模,单点修改
  • n,m<=105,a[i]<=109

官方题解


vfk大大的题目
简单来说就是解释了一下取模操作的复杂度可以不超过 nlog(n)
然而我不停地TTTTTTTT,好像的确比别人慢很多QAQAQ….
UPD:重写过了啦啦啦~

constmaxn=700000;
varw:array[0..4*maxn,1..2]of int64;i,j,k:longint;n,m:longint;a,b,c,d:longint;
procedure build(a,l,r:longint);
var mid:longint;
beginif l=r then begin read(w[a,1]); w[a,2]:=w[a,1]; exit; end;mid:=(l+r)>>1;build(a*2,l,mid); build(a*2+1,mid+1,r);w[a,1]:=w[a*2,1]+w[a*2+1,1];if w[a*2,2]>w[a*2+1,2]then w[a,2]:=w[a*2,2] else w[a,2]:=w[a*2+1,2];
end;function query(a,x,y,l,r:longint):int64;
var mid:longint;
beginif (x=l)and(y=r)then exit(w[a,1]);mid:=(x+y)>>1;if r<=mid then exit(query(a*2,x,mid,l,r)) else if l>mid then exit(query(a*2+1,mid+1,y,l,r))else exit(query(a*2,x,mid,l,mid)+query(a*2+1,mid+1,y,mid+1,r));
end;procedure update1(a,x,y,l,r,mmod:longint);
var mid:longint;
beginif w[a,2]<mmod then exit;if x=y then begin w[a,1]:=w[a,1] mod mmod; w[a,2]:=w[a,1]; exit; end;mid:=(x+y)>>1;if r<=mid then update1(a*2,x,mid,l,r,mmod) else if l>mid then update1(a*2+1,mid+1,y,l,r,mmod)else begin update1(a*2,x,mid,l,mid,mmod); update1(a*2+1,mid+1,y,mid+1,r,mmod); end;w[a,1]:=w[a*2,1]+w[a*2+1,1];if w[a*2,2]>w[a*2+1,2]then w[a,2]:=w[a*2,2] else w[a,2]:=w[a*2+1,2];
end;procedure update2(a,x,y,b,c:longint);
var mid:longint;
beginif x=y then begin w[a,1]:=c; w[a,2]:=c; exit; end;mid:=(x+y)>>1;if b<=mid then update2(a*2,x,mid,b,c)else update2(a*2+1,mid+1,y,b,c);w[a,1]:=w[a*2,1]+w[a*2+1,1];if w[a*2,2]>w[a*2+1,2]then w[a,2]:=w[a*2,2] else w[a,2]:=w[a*2+1,2];
end;beginreadln(n,m);build(1,1,n);for i:=1 to m dobeginread(a);case a of1:begin readln(b,c); writeln(query(1,1,n,b,c)); end;2:begin readln(b,c,d); update1(1,1,n,b,c,d); end;3:begin readln(b,c); update2(1,1,n,b,c); end;end;end;
end.

更多推荐

Codeforces Round #250 D

本文发布于:2024-02-14 12:03:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1763018.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Codeforces

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!