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. Python——流程控制语句

    if语句 条件进行判断,满足,则执行里面 的内容:不满足,则执行if循环下面的语句 基本语法: if 判断条件: 满足后执行语句 1 如果:女人的年龄>30岁,那么:叫阿姨 age_of_gir ...

  2. Object-C知识点 (六) 开发中的技巧

    本文主要介绍开发中的一些实用技巧 #pragma mark - 代码控制Home按键 [[UIApplication sharedApplication] performSelector:@selec ...

  3. Linux下如何通过命令检查网卡是否插上网线

    How To:Linux下如何通过命令检查网卡是否插上网线   主要工具为ethtool来检查,主要关注的字段为"Link detected",注意如下的输出,其中em4实际物理上 ...

  4. 探讨 JS 的面向对象中继承的那些事

    最近学了 JS 的面向对象,这篇文章主要是探讨 JS 的面向对象中继承的那些事. JS中继承的特点: 1.子类继承父类: 2.子类可以用父类的方法和属性 3.子类的改变可以不影响父类 下面用一个例子来 ...

  5. NOIP计划索引

    药丸的节奏 亟待解决的问题 灵光一现的trick 2018上学期刷题记录 NOIP2018 - 暑期博客整理 NOIP2018 - 一些板子 NOIP2018 - 每日填坑

  6. centos7安装pgsql及操作命令

    1.下载所需要的数据库版本https://yum.postgresql.org/repopackages.php 2.安装数据库版本包 yum install -y https://download. ...

  7. thinkphp5开发restful-api接口学习 教程视频 接口文档

    目录 1. 获取验证码 2. 用户注册 3. 用户登录 4. 用户上传头像 5. 用户修改密码 6. 用户找回密码 7. 用户绑定手机号 8. 用户绑定邮箱 9. 用户绑定用户名(手机/邮箱) 10. ...

  8. Python之简单Socket编程

    Socket编程这块儿还是比较重要的,记录一下:实现服务器端和客户端通信(客户端发送系统指令,如ipconfig等,服务器端执行该指令,然后将指令返回结果给客户端再传过去,设置一次最多直接收1024字 ...

  9. 大小端测试C实现

    int is_little_endian(void)//判断是否是小端的函数 { union check_fun { int a; char b; }u1; u1.a=;//先将1(实际上就是0x00 ...

  10. 某比赛小记1- 挑选第N大数字

    题目:给1000个数字(有重复),从小到大排列后,挑选第N个数字. 数字文件如下:numbers.rar ,挑选第727个数字. java版本: //数组初始化 String str = " ...