tyvj1716上帝造题的七分钟——by rfy
来源:互联网 发布:zblog php模板 编辑:程序博客网 时间:2024/05/17 02:06
二维树状数组区间加区间求和
很好的blog(赞!) http://hi.baidu.com/wyl8899/item/c3ac1c0eec3516ea34990267
我的丑陋代码:
varn,m,x,y,xx,yy,v:longint;ch:char;add,a,b,c,d:array[0..3000,0..3000] of longint;procedure insert(x,y,v:longint);vari,j:longint;beginadd[x,y]:=add[x,y]+v;i:=x;while i<=n dobegin j:=y; while j<=m do begin a[i,j]:=a[i,j]+v; b[i,j]:=b[i,j]+v*x; c[i,j]:=c[i,j]+v*y; d[i,j]:=d[i,j]+v*x*y; j:=j+j and (-j); end; i:=i+i and (-i);end;end;function sum(x,y:longint):longint;vars1,s2,s3,s4,i,j:longint;begini:=x;s1:=0;s2:=0;s3:=0;s4:=0;while i>0 dobegin j:=y; while j>0 do begin s1:=s1+a[i,j]; s2:=s2+b[i,j]; s3:=s3+c[i,j]; s4:=s4+d[i,j]; j:=j-j and (-j); end; i:=i-i and (-i);end;exit(s1*(x+1)*(y+1)-s2*(y+1)-s3*(x+1)+s4);end;beginreadln(ch,n,m);while not eof dobegin read(ch); if ch='L' then begin readln(x,y,xx,yy,v); insert(x,y,v); insert(xx+1,yy+1,v); insert(x,yy+1,-v); insert(xx+1,y,-v); end else begin readln(x,y,xx,yy); writeln(sum(xx,yy)+sum(x-1,y-1)-sum(x-1,yy)-sum(xx,y-1)); end;end;end.
0 0
- tyvj1716上帝造题的七分钟——by rfy
- 二维树状数组上帝造题的七分钟(tyvj1716)
- 【BZOJ3132】【TYVJ1716】上帝造题的七分钟 二维树状数组
- [BZOJ3132] 上帝造题的七分钟
- 【BZOJ3132】上帝造题的七分钟
- [BZOJ3132]上帝造题的七分钟
- BZOJ3132上帝造题的七分钟
- 【bzoj3132】上帝造题的七分钟
- 【BZOJ3132】上帝造题的七分钟
- wikioi1296——by rfy
- wikioi1285——by rfy
- poj3468——by rfy
- wikioi3304——by rfy
- poj1389——by rfy
- tyvj1744——by rfy
- 【bzoj3038】 上帝造题的七分钟2
- [BZOJ3038][线段树]上帝造题的七分钟2
- bzoj3038 上帝造题的七分钟2
- Apple Color Emoji打开
- oc1
- 给定字符串,获取MD5值
- 家网站的模板质量也非常好,最后的结果我想不用
- 最少拦截系统
- tyvj1716上帝造题的七分钟——by rfy
- spring mvc 配置
- tornado源码阅读--开篇
- shell脚本---之入门
- textarea与内容之间有很多空白
- tornado源码阅读--Application篇
- hadoop
- tornado源码阅读--HTTPServer篇
- sqlserver2005(Express版)的配置