BZOJ 1452:[JSOI2009]Count(二维树状数组)
[JSOI2009]Count
描述



输入

2

分析:
裸二维bit,对每个颜色建一颗bit。
program count;
var
bit:array[..,..,..]of longint;
a:array[..,..]of longint;
n,i,m,j,x,y,c,x1,y1,x2,y2,q,g,ans:longint;
procedure add(x,y,c,v:longint);
var i:longint;
begin
i:=y;
while x<=n do
begin
while y<=m do begin inc(bit[c,x,y],v); y:=y+y and (-y); end;
x:=x+x and (-x); y:=i;
end;
end;
function ask(x,y,c:longint):longint;
var i,s:longint;
begin
i:=y; s:=;
while x> do
begin
while y> do begin inc(s,bit[c,x,y]); y:=y-y and (-y); end;
x:=x-x and (-x); y:=i;
end;
exit(s);
end;
begin
readln(n,m);
for i:= to n do begin
for j:= to m do
begin
read(c); add(i,j,c,); a[i,j]:=c;
end;
readln;
end;
readln(q);
for i:= to q do
begin
read(g);
if g= then
begin
read(x,y,c); add(x,y,a[x,y],-); a[x,y]:=c; add(x,y,c,);
end
else
begin
read(x1,x2,y1,y2,c);
ans:=ask(x2,y2,c)+ask(x1-,y1-,c)-ask(x1-,y2,c)-ask(x2,y1-,c);
writeln(ans);
end;
readln;
end;
end.
BZOJ 1452:[JSOI2009]Count(二维树状数组)的更多相关文章
- bzoj 1452: [JSOI2009]Count ——二维树状数组
		
escription Input Output Sample Input Sample Output 1 2 HINT ———————————————————————————————————————— ...
 - BZOJ 1452: [JSOI2009]Count   二维树状数组
		
1452: [JSOI2009]Count Description Input Output Sample Input Sample Output 1 2 HINT Source 题解:设定C[101 ...
 - bzoj1452 [JSOI2009]Count ——二维树状数组
		
中文题面,给你一个矩阵,每一个格子有数字,有两种操作. 1. 把i行j列的值更改 2. 询问两个角坐标分别为(x1,y1) (x2,y2)的矩形内有几个值为z的点. 这一题的特点就是给出的z的数据范围 ...
 - 【bzoj1452】[JSOI2009]Count  二维树状数组
		
题目描述 输入 输出 样例输入 样例输出 1 2 题解 二维树状数组 一开始没看到 1≤c≤100 ,想到了主X树和X块,结果发现c的范围那么小... 二维树状数组水题,和一维的一样,向上修改,向下查 ...
 - BZOJ 1452 Count(二维树状数组)
		
大水题. 建立100个二维树状数组,总复杂度就是O(qlognlogm). # include <cstdio> # include <cstring> # include & ...
 - BZOJ 1452: [JSOI2009]Count(二维BIT)
		
为每一个权值开一个二维树状数组. ------------------------------------------------------------------------- #include& ...
 - 洛谷P4054 [JSOI2009]计数问题(二维树状数组)
		
题意 题目链接 Sol 很傻x的题.. c才100, n, m才300,直接开100个二维树状数组就做完了.. #include<bits/stdc++.h> using namespac ...
 - [JSOI2009]计数问题    二维树状数组
		
---题面--- 题解: 二维树状数组的板子题,,,学了这么久第一次写二维树状数组,惭愧啊. 怎么写就不说了,看代码吧. 跟普通的是一样的写法 #include<bits/stdc++.h> ...
 - Count(二维树状数组)
		
[bzoj1452][JSOI2009]Count Description Input Output Sample Input Sample Output 12 HINT 题解:对于每一个颜色建一 ...
 - [JSOI2009]计数问题 二维树状数组BZOJ 1452
		
题目描述 一个n*m的方格,初始时每个格子有一个整数权值.接下来每次有2种操作: 改变一个格子的权值: 求一个子矩阵中某种特定权值出现的个数. 输入输出格式 输入格式: 第一行有两个数N,M. 接下来 ...
 
随机推荐
- World Wind Java开发之十五——加载三维模型(转)
			
之前的一篇博客是关于加载粗三维模型的,见http://blog.csdn.net/giser_whu/article/details/43452703,这个地方还存在着不能加载纹理的问题,一直没呢解决 ...
 - World Wind Java开发之二 使用Winbuilders设计图形用户界面(转)
			
http://blog.csdn.net/giser_whu/article/details/40892955 在eclipse中使用WindowsBuildes可以像在VS中一样,拖拽用户图形界面. ...
 - python_30_购物车复习
			
prodcut_list=[ ('Iphone', 5800), ('Mac Pro', 9800), ('Bike', 800), ('Watch', 10600), ('Coffee', 31), ...
 - 题解 P4613 【[COCI2017-2018#5] Olivander】
			
话说这道题,作为一个哈迷,是不能错过的 我很惊讶本蒟蒻竟然看得懂题面 好了,闲话少说,这道题,虽说是入门难度,但凭着良心说,它还是一道普及 - 的吧 看到标签,“高性能”,大脑的第一反应是快读. 是不 ...
 - unsigned __int64 打印方法
			
原文出处 long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647. 而unsigned范围是[0,2^32),即0~4294967295.也就是说,常规的 ...
 - DevOps - 版本控制 - Gogs
			
Gogs Gogs官网:https://gogs.io Gogs文档:https://gogs.io/docs Gogs配置文件手册:https://gogs.io/docs/advanced/con ...
 - Spring的datasource配置详解【转】
			
一句话,Spring对Hibernate的整合,是在applicationContext.xml中配置sessionFactory来实现的,其中sessionFactory中要装配dataSource ...
 - hibernate的get() load() 和find()区别
			
如果找不到符合条件的纪录,get()方法将返回null.如果找不到符合条件的纪录,find()方法将返回null.如果找不到符合 条件的纪录,load()将会报出ObjectNotFoundEccep ...
 - makefile学习(2)
			
新建目录如下: ├─include │ integrate.h │ └─src │ integrate.c │ main.c │ makefile │ └─obj obj用于存放object文件. m ...
 - Java 关键字volatile 与 synchronized 作用与区别
			
1,volatile 它所修饰的变量不保留拷贝,直接访问主内存中的. 在Java内存模型中,有main memory,每个线程也有自己的memory (例如寄存器).为了性能,一个线程会在自己 ...