1452: [JSOI2009]Count - BZOJ
2024-10-15 08:47:59
Description
Input
Output
Sample Input
Sample Output
1
2
HINT
一开始还想什么离线做,其实不用,空间足够,我们直接开100个二维树状数组,然后就行了
但是如果c范围很大就离线做好一些
type
tree=array[..,..]of longint;
var
s:array[..]of tree;
a:array[..,..]of longint;
n,m,q:longint; procedure add(var c:tree;x,y,w:longint);
var
i:longint;
begin
while x<=n do
begin
i:=y;
while i<=m do
begin
inc(c[x,i],w);
i:=i+(i and (-i));
end;
x:=x+(x and (-x));
end;
end; function sum(var c:tree;x,y:longint):longint;
var
i:longint;
begin
sum:=;
while x> do
begin
i:=y;
while i> do
begin
inc(sum,c[x,i]);
i:=i-(i and (-i));
end;
x:=x-(x and (-x));
end;
end; procedure main;
var
i,j,x1,y1,x2,y2,c:longint;
begin
read(n,m);
for i:= to n do
for j:= to m do
begin
read(a[i,j]);
add(s[a[i,j]],i,j,);
end;
read(q);
for i:= to q do
begin
read(j);
if j= then
begin
read(x1,y1,c);
add(s[a[x1,y1]],x1,y1,-);
a[x1,y1]:=c;
add(s[c],x1,y1,);
end
else
begin
read(x1,x2,y1,y2,c);
writeln(sum(s[c],x2,y2)+sum(s[c],x1-,y1-)-sum(s[c],x1-,y2)-sum(s[c],x2,y1-));
end;
end;
end; begin
main;
end.
最新文章
- go 获取函数被调用的文件即行数
- 用Reveal分析第三方App的UI
- Linux 中断详解 【转】
- 关于RACK的一点简单介绍
- C++语法 初始化列表 数组引用
- linux ll 命令各列的含义
- hdu----(1528)Card Game Cheater(最大匹配/贪心)
- Ruby on Rails vs. PHP vs. Python
- MVC 弹出提示框
- 一些Linux优化方法
- Struts2 校验
- Objective-C该Protocol
- Win10《芒果TV》商店版更新v3.4.0:率先支持创意者画中画,工作娱乐两不误
- Java Web项目(Extjs)报错六
- Angular 学习笔记 ( 链接服务器 )
- VS2017安装步骤详解
- 我的Mac Pro coding环境配置
- SOCKS5 协议解析
- SpringBoot获取全局配置文件的属性以及@ConfigurationProperties实现类型安全的配置
- urllib模块学习
热门文章
- iOS - OC &; Xcode
- jquery的clone方法 于textarea和select的bug修复
- Java web的读取Excel简单Demo
- vector C++ 详细用法
- 《shell条件测试语句,字符串测试apache是否开启》
- 如何在Mac下使用TF/SD 卡制作Exynos 4412 u-boot启动盘
- DTCMS列表页自定义参数。
- C# 条码标签打印程序,RDLC报表动态显示多条码标签的方法
- 【Sql Server】使用触发器把一个表中满足条件的数据部分字段插入到另一个表中
- “~/Views/Home/Text.aspx”处的视图必须派生自 ViewPage、ViewPage<;TModel>;、ViewUserControl 或 ViewUserControl<;TModel>;。