[JSOI2009]Count

描述

输入

输出
1
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(二维树状数组)的更多相关文章

  1. bzoj 1452: [JSOI2009]Count ——二维树状数组

    escription Input Output Sample Input Sample Output 1 2 HINT ———————————————————————————————————————— ...

  2. BZOJ 1452: [JSOI2009]Count 二维树状数组

    1452: [JSOI2009]Count Description Input Output Sample Input Sample Output 1 2 HINT Source 题解:设定C[101 ...

  3. bzoj1452 [JSOI2009]Count ——二维树状数组

    中文题面,给你一个矩阵,每一个格子有数字,有两种操作. 1. 把i行j列的值更改 2. 询问两个角坐标分别为(x1,y1) (x2,y2)的矩形内有几个值为z的点. 这一题的特点就是给出的z的数据范围 ...

  4. 【bzoj1452】[JSOI2009]Count 二维树状数组

    题目描述 输入 输出 样例输入 样例输出 1 2 题解 二维树状数组 一开始没看到 1≤c≤100 ,想到了主X树和X块,结果发现c的范围那么小... 二维树状数组水题,和一维的一样,向上修改,向下查 ...

  5. BZOJ 1452 Count(二维树状数组)

    大水题. 建立100个二维树状数组,总复杂度就是O(qlognlogm). # include <cstdio> # include <cstring> # include & ...

  6. BZOJ 1452: [JSOI2009]Count(二维BIT)

    为每一个权值开一个二维树状数组. ------------------------------------------------------------------------- #include& ...

  7. 洛谷P4054 [JSOI2009]计数问题(二维树状数组)

    题意 题目链接 Sol 很傻x的题.. c才100, n, m才300,直接开100个二维树状数组就做完了.. #include<bits/stdc++.h> using namespac ...

  8. [JSOI2009]计数问题 二维树状数组

    ---题面--- 题解: 二维树状数组的板子题,,,学了这么久第一次写二维树状数组,惭愧啊. 怎么写就不说了,看代码吧. 跟普通的是一样的写法 #include<bits/stdc++.h> ...

  9. Count(二维树状数组)

    [bzoj1452][JSOI2009]Count Description Input Output Sample Input Sample Output 12   HINT 题解:对于每一个颜色建一 ...

  10. [JSOI2009]计数问题 二维树状数组BZOJ 1452

    题目描述 一个n*m的方格,初始时每个格子有一个整数权值.接下来每次有2种操作: 改变一个格子的权值: 求一个子矩阵中某种特定权值出现的个数. 输入输出格式 输入格式: 第一行有两个数N,M. 接下来 ...

随机推荐

  1. 【洛谷1501】[国家集训队] Tree II(LCT维护懒惰标记)

    点此看题面 大致题意: 有一棵初始边权全为\(1\)的树,四种操作:将两点间路径边权都加上一个数,删一条边.加一条新边,将两点间路径边权都加上一个数,询问两点间路径权值和. 序列版 这道题有一个序列版 ...

  2. 将数据库数据添加到ListView控件中

    实现效果: 知识运用: ListView控件中的Items集合的Clear方法 //从listView控件的数据项集合中移除所有数据项 补充:可以使用Remove或RemoveAt方法从集合中移除单个 ...

  3. java算法面试题:写一个Singleton出来

    package com.swift; public class Singleton { public static void main(String[] args) { /* * 写一个Singlet ...

  4. JDBC中 mysql数据库的连接工具类 Java登录 及增删改查 整理 附带:Navicat Premium 11.0.12中文破解版.zip(下载)mysql数据库工具

    先写一个工具类,有实现MySQL数据库连接的方法,和关闭数据库连接.关闭ResultSet  结果集.关闭PreparedStatement 的方法.代码如下: package com.swift; ...

  5. JavaScript 交换两个变量的值

    方法一 let a = "a", b = "b"; console.log(a, b); let t = a; a = b; b = t; console.lo ...

  6. SAP事件 Event Flow(转载)

    1 报表过程事件 报表过程事件是在报表运行过程中由系统自动控制,按照一定次序被触发的事件,其目的是从数据库中选择数据并整理,准备进行列表输出.这些事件从报表程序启动开始就被系统顺序触发,现分述如下: ...

  7. grep与正则表达式使用

    grep简介 grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.通常grep有三种版本grep.egrep(等同于grep -E)和fgrep.egrep为扩展的g ...

  8. mod_deflate模块

    mod_deflate模块 压缩模块,使用mod_deflate模块压缩页面优化传输速度 主要是需要设置 1.针对的内容 2.压缩比是多少 可以忽略排除特定旧版本的浏览器的设置.因为那些都太老了,现在 ...

  9. vue插件库

    各种vue插件,各种有,总有一款适合你! github地址:https://github.com/opendigg/awesome-github-vue

  10. 精通SpringBoot--分页查询功能的实现

    本文将介绍如何实现分页查询功能,推荐使用github的pagehelper插件实现(事实上大家基本都是这么干的),但本文的实现方式和大多数不同,废话少说,现在就带着大家看看区别在哪里.先看pom.xm ...