BZOJ1452 count (树状数组)
2024-08-29 22:47:08
一道比较水的二维树状数组,开100个即可,只有100种颜色还是比较EZ的。
Program BZOJ1452;
const maxn=;
maxc=;
var a:array[..maxn,..maxn,..maxc] of longint;
f:array[..maxn,..maxn] of longint;
m,n,i,j,x,y,x1,y1,x2,y2,z,Q,ch,sum:longint;
procedure add(i,j,c,k:longint);
var x,y:longint;
begin
x:=i;
while x<=m do
begin
y:=j;
while y<=n do
begin
inc(a[x,y,c],k);
y:=y+y and -y;
end;
x:=x+x and -x;
end;
end;
function sigma(i,j,c:longint):longint;
var x,y,sum:longint;
begin
sum:=; x:=i;
while x> do
begin
y:=j;
while y> do
begin
inc(sum,a[x,y,c]);
y:=y-y and -y;
end;
x:=x-x and -x;
end;
exit(sum);
end;
begin
readln(m,n);
for i:= to m do
for j:= to n do
begin
read(x);
add(i,j,x,);
f[i,j]:=x;
end;
readln(Q);
while Q> do
begin
read(ch);
if ch= then
begin
readln(x,y,z);
add(x,y,f[x,y],-);
f[x,y]:=z;
add(x,y,z,);
end else
begin
readln(x1,x2,y1,y2,z);
sum:=sigma(x2,y2,z)-sigma(x1-,y2,z)-sigma(x2,y1-,z)+sigma(x1-,y1-,z);
writeln(sum);
end;
dec(Q);
end;
end.
最新文章
- css的active事件在手机端不生效的解决方法
- 如何给ZenCart网站livezilla客服系统?
- Android MVP理解
- 自己封装的一个java图片验证码
- .NET开源工作流RoadFlow-表单设计-新建表单(属性设置)
- 使用c++11改写loki的TypeList
- 在CheckBox中,仅仅允许选择一项
- git的操作集合
- opencv imwrite保存图片花屏的问题
- MFCC特征参数提取流程概述
- actuator/hystrix.stream 没有反应的方法
- 【AtCoder】ARC078
- [luogu P1438] 无聊的数列
- Java 8 默认方法(Default Methods)
- 代码: html 页面小效果 (集合,待补充)
- python的时间处理-time模块
- 04: 事件驱动、五种I/O操作、I/O多路复用select和epoll
- Web应用配置虚拟主机(www.baidu.com)
- make的自动变量和预定义变量
- 【OpenCV学习笔记】三十、轮廓特征属性及应用(七)—位置关系及轮廓匹配
热门文章
- 获取openid [微信小程序]
- 2017杭电多校06Rikka with Graph
- Android 性能优化(26)*性能工具之「Batterystats,Battery Historian」Batterystats &; Battery Historian Walkthrough
- Axis通过wsdd部署Web Service
- hbase优化小结
- 在dataGridView空间中添加数据
- 19 C#循环语句的跳过和中断 continue和break
- SQLiteDeveloper 工具
- DropDownList 递归绑定分子公司信息
- RabbitMQ系列(一)--消息中间件MQ如何去选择