http://www.lydsy.com/JudgeOnline/problem.php?id=1452

题目全是图片,不复制了。

开100个二维树状数组,分别记录区间内各个颜色的出现位置……

简单粗暴。

注意查询操作的读入顺序是x1 x2 y1 y2

 /*by SilverN*/
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
const int mxn=;
int t[][mxn][mxn];
int c[mxn][mxn];
int n,m;
inline int lowbit(int x){return x&-x;}
void add(int x,int y,int c,int v){
while(x<=n){
int tmp=y;
while(tmp<=m){t[c][x][tmp]+=v;tmp+=lowbit(tmp);}
x+=lowbit(x);
}
}
int smm(int x,int y,int c){
int res=;
while(x){
int tmp=y;
while(tmp){res+=t[c][x][tmp];tmp-=lowbit(tmp);}
x-=lowbit(x);
}
return res;
}
int ask(int x1,int y1,int x2,int y2,int c){
return smm(x2,y2,c)+smm(x1-,y1-,c)-smm(x2,y1-,c)-smm(x1-,y2,c);
}
int main(){
int i,j;int x;
scanf("%d%d",&n,&m);
for(i=;i<=n;i++)
for(j=;j<=m;j++){
scanf("%d",&x);
c[i][j]=x;
add(i,j,x,);
}
int Q;
scanf("%d",&Q);
int x1,y1,x2,y2;
while(Q--){
scanf("%d",&i);
if(i==){
scanf("%d%d%d",&x1,&y1,&x);
add(x1,y1,c[x1][y1],-);
c[x1][y1]=x;
add(x1,y1,c[x1][y1],);
}
else{
scanf("%d%d%d%d%d",&x1,&x2,&y1,&y2,&x);
printf("%d\n",ask(x1,y1,x2,y2,x));
}
}
return ;
}

Bzoj1452 Count的更多相关文章

  1. BZOJ1452 count (树状数组)

    一道比较水的二维树状数组,开100个即可,只有100种颜色还是比较EZ的. Program BZOJ1452; ; maxc=; ..maxn,..maxn,..maxc] of longint; f ...

  2. nodejs api 中文文档

    文档首页 英文版文档 本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可. Node.js v0.10.18 手册 & 文档 索引 | 在单一页面中浏览 | JSON格 ...

  3. 【BZOJ1452】[JSOI2009]Count(树状数组)

    [BZOJ1452][JSOI2009]Count(树状数组) 题面 BZOJ 洛谷 题解 数据范围这么小?不是对于每个颜色开一个什么东西记一下就好了吗. 然而我不会二维树状数组? 不存在的,凭借多年 ...

  4. [bzoj1452][JSOI2009]Count(树状数组)

    1452: [JSOI2009]Count Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2057  Solved: 1216[Submit][Stat ...

  5. 【BZOJ-1452】Count 树状数组 套 树状数组

    1452: [JSOI2009]Count Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1769  Solved: 1059[Submit][Stat ...

  6. BZOJ1452 [JSOI2009]Count 【树套树 (树状数组)】

    1452: [JSOI2009]Count Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 2693  Solved: 1574 [Submit][St ...

  7. BZOJ1452 [JSOI2009]Count [2017年4月计划 树状数组02]

    1452: [JSOI2009]Count Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2419  Solved: 1403[Submit][Stat ...

  8. BZOJ1452——[JSOI2009]Count

    1.题目大意: 就是给一个n×m的方格,然后一些平面上的 求和 修改操作 2.分析:二维树状数组裸题 #include <cstdio> #include <cstdlib> ...

  9. BZOJ1452 [JSOI2009]Count

    Description Input Output Sample Input Sample Output 1 2 HINT 正解:二维树状数组 解题报告: 这是一道送肉题.二维树状数组直接维护每种颜色的 ...

随机推荐

  1. HTML5 跨文档消息传输

    对窗口对象的message事件进行监听 window.addEventListener("message", function(event) { // 处理程序代码 }, fals ...

  2. Bootstrap历练实例:默认的缩略图

    本章将讲解Bootstrap缩略图,大多数站点都需要要在网格中布局图像,视频,文本.Bootstrap通过缩略图为此提供了一些简便的方法,使用Bootstrap创建缩略图的步骤如下: 1.在图像的周围 ...

  3. Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程

    Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程 二 18 奶牛 Linux, Ubuntu, Windows 1,885 views查看评论 最近奶牛一直在折腾linux下的gru ...

  4. VueX源码分析(1)

    VueX源码分析(1) 文件架构如下 /module /plugins helpers.js index.esm.js index.js store.js util.js util.js 先从最简单的 ...

  5. 洛谷 P2568 GCD

    https://www.luogu.org/problemnew/show/P2568#sub 最喜欢题面简洁的题目了. 本题为求两个数的gcd是素数,那么我们将x和y拆一下, 假设p为$gcd(x, ...

  6. 有重复元素的排列(DFS)

    题目描述: 设R={ r1, r2 , …, rn}是要进行排列的n个元素.其中元素r1, r2 , …, rn均为小写字母并且可能相同.试设计一个算法,列出R的所有不同排列. 给定n 以及待排列的n ...

  7. 【python】python环境搭建

    本文主要用于记录python环境的搭建一些不常用的命令,其他的安装步骤在其他大师可以找到就不详细列出了.(注:以下操作都是在Ubuntu14.04LTS版本) 一.环境查询相关 1.查询当前pytho ...

  8. Lecture 3

    surface models 1. The two main methods of creating surface models are interpolation and triangulatio ...

  9. Java并发编程的艺术 记录(四)

    Java线程的状态: new :初始状态,但是还没调用start方法. runnable:运行状态. blocked:阻塞状态. waiting:等待状态,表示当前线程需要等待其他线程作出一些特定动作 ...

  10. init_bootmem_node

    初始化pg_data_t->bdtat结构体, /* * node_bootmem_map is a map pointer - the bits represent all physical ...