poj1195 二维树状数组【pascal】
2016-11-15 11:42
232 查看
二维树状数组模板=。=
var
tt,n,x,y,l,b,r,t,z:longint;
i,j :longint;
c :array[0..1025,0..1025] of longint;
function lowbit(x:longint):Longint;
begin
exit(x and (-x));
end;
procedure add(x,y,z:longint);
var
t1,t2:longint;
begin
while (x<=n) do
begin
t1:=y;
while (t1<=n) do
begin
inc(c[x,t1],z);
inc(t1,lowbit(t1));
end;
inc(x,lowbit(x));
end;
end;
function sum(x,y:longint):longint;
var
ans,y1:longint;
begin
ans:=0;
while (x>0) do
begin
y1:=y;
while (y1>0) do
begin
inc(ans,c[x,y1]);
dec(y1,lowbit(y1));
end;
dec(x,lowbit(x));
end;
exit(ans);
end;
function find(l,b,r,t:longint):Longint;
begin
exit(sum(r,t)-sum(l-1,t)-sum(r,b-1)+sum(l-1,b-1));
end;
begin
read(tt);
while (tt<>3) do
begin
if (tt=0) then
begin
read(n);
fillchar(c,sizeof(c),0);
end else
if (tt=1) then
begin
read(x,y,z);
inc(x);inc(y);
add(x,y,z);
end else
if (tt=2) then
begin
read(l,b,r,t);
inc(l);inc(b);inc(r);inc(t);
writeln(find(l,b,r,t));
end;
read(tt);
end;
end.
——by Eirlys
var
tt,n,x,y,l,b,r,t,z:longint;
i,j :longint;
c :array[0..1025,0..1025] of longint;
function lowbit(x:longint):Longint;
begin
exit(x and (-x));
end;
procedure add(x,y,z:longint);
var
t1,t2:longint;
begin
while (x<=n) do
begin
t1:=y;
while (t1<=n) do
begin
inc(c[x,t1],z);
inc(t1,lowbit(t1));
end;
inc(x,lowbit(x));
end;
end;
function sum(x,y:longint):longint;
var
ans,y1:longint;
begin
ans:=0;
while (x>0) do
begin
y1:=y;
while (y1>0) do
begin
inc(ans,c[x,y1]);
dec(y1,lowbit(y1));
end;
dec(x,lowbit(x));
end;
exit(ans);
end;
function find(l,b,r,t:longint):Longint;
begin
exit(sum(r,t)-sum(l-1,t)-sum(r,b-1)+sum(l-1,b-1));
end;
begin
read(tt);
while (tt<>3) do
begin
if (tt=0) then
begin
read(n);
fillchar(c,sizeof(c),0);
end else
if (tt=1) then
begin
read(x,y,z);
inc(x);inc(y);
add(x,y,z);
end else
if (tt=2) then
begin
read(l,b,r,t);
inc(l);inc(b);inc(r);inc(t);
writeln(find(l,b,r,t));
end;
read(tt);
end;
end.
——by Eirlys
相关文章推荐
- 二维树状数组——poj1195
- POJ1195--Mobile phones--二维树状数组
- 二维树状数组(水题) POJ1195
- 【POJ1195】【二维树状数组】Mobile phones
- 树状数组-HDU1541-Stars一维树状数组 POJ1195-Mobile phones-二维树状数组
- (POJ1195)Mobile phones <二维树状数组>
- poj1195及二维树状数组模板
- POJ1195 Mobile phones 【二维树状数组】
- 彻底弄懂二维树状数组
- 【二维树状数组】poj 2155 Matrix
- 树状数组一、二维区间修改与求和
- BZOJ 1452: [JSOI2009]Count 二维树状数组
- POJ 2155 Matrix 【二维树状数组】
- POJ 2155 Matrix (二维线段树入门,成段更新,单点查询 / 二维树状数组,区间更新,单点查询)
- POJ 2155 Matrix(二维树状数组,绝对详细)
- 【Vijos-P1512】SuperBrother打鼹鼠-二维树状数组
- poj 1195 Mobile phones 【二维树状数组】
- poj 2155 Matrix 二维树状数组
- 摸清一、二维树状数组与线段树
- hdu 2642二维树状数组 单点更新区间查询 模板题