哪位神牛看看 括号法做的,TLE!

type ad=array[0..60010] of longint;

var c1,c2:ad;

n,m:longint;

i,j,l,r,k:longint;

function lowbit(x:longint):longint;

begin

lowbit:=x and (x xor(x-1));

end;

procedure updata(var c:ad;x:longint);

var p:longint;

begin

p:=x;

while p0 do

begin

sum:=sum+c[p];

p:=p-lowbit(p);

end;

getsum:=sum;

end;

{c1是左括号,c2是右括号}

//---|---|---|---|---|main---|---|---|---|---|---|---|--

begin

readln(n,m);

for i:=1 to m do

begin

readln(k,l,r);

if k=1 then begin

updata(c1,l); updata(c2,r);

end

else begin

r:=getsum(c1,r-1)-getsum(c2,l-1);

writeln(r);

end;

end;

end.

3 条评论

  • 1

信息

ID
1448
难度
6
分类
数据结构 | 线段树 点击显示
标签
递交数
2920
已通过
872
通过率
30%
被复制
6
上传者