2维bit。每个颜色建一个。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn = 300+10;struct Bit2D {int a[maxn][maxn],n,m;inline int lowbit(int x) {return x&-x;}void add(int x,int y,int d) {for(int i=x;i<=n;i+=lowbit(i))for(int j=y;j<=m;j+=lowbit(j))a[i][j]+=d;}int query(int x,int y) {int res =0;for(int i=x;i;i-=lowbit(i))for(int j=y;j;j-=lowbit(j)) res+=a[i][j];return res;}int query2(int x1,int x2,int y1,int y2) {int res=query(x2,y2)+query(x1-1,y1-1)-query(x1-1,y2)-query(x2,y1-1);return res;}void build(int a,int b) {n=a; m=b;}
} bit[110];int a[maxn][maxn];void op1() {int x,y,c;scanf("%d%d%d",&x,&y,&c);bit[a[x][y]].add(x,y,-1);bit[c].add(x,y,1);a[x][y]=c;
}void op2() {int x1,x2,y1,y2,c;scanf("%d%d%d%d%d",&x1,&x2,&y1,&y2,&c);printf("%d\n",bit[c].query2(x1,x2,y1,y2));
}int main() {int n,m,q;scanf("%d%d",&n,&m);for(int i=1;i<=100;i++) bit[i].build(n,m);for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) {scanf("%d",&a[i][j]);bit[a[i][j]].add(i,j,1);}scanf("%d",&q);for(int i=1,op;i<=q;i++) {scanf("%d",&op);if(op==1) op1();else op2();}return 0;
}

转载于:https://www.cnblogs.com/invoid/p/5433160.html

bzoj1452: [JSOI2009]Count相关推荐

  1. BZOJ1452 [JSOI2009]Count 树状数组

    欢迎访问~原文出处--博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1452 题意概括 一个n*m的矩阵,现在有2种操作: 修改某一个位置的值 求一个子矩阵某值的出现次数 ...

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

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

  3. 二维树状数组(bzoj 1452: [JSOI2009]Count)

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

  4. [bzoj 1452] [JSOI2009]Count

    [bzoj 1452] [JSOI2009]Count Description Input Output Sample Input Sample Output 1 2 HINT 二维树状数组裸题,建立 ...

  5. [BZOJ1452/Luogu4054][JSOI2009]Count计数问题

    题目链接: BZOJ1452 Luogu4054 二维树状数组题(或许可以毒瘤树套树) 注意到值域范围为\(100\),对每个数开一个二维树状数组,在对应的树状数组上修改查询即可. 时间复杂度 \(O ...

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

    题目链接 裸二维树状数组 #include <bits/stdc++.h>const int N = 305; struct BIT_2D {int c[105][N][N], n, m; ...

  7. BZOJ 1452 [JSOI2009] Count

    这道题好像有点简单的样子... absi找题目好厉害啊...确实是一道比较裸的2dBIT啊. 水掉吧. 附:2dBIT怎么做: 2dBIT就是BIT套BIT啦. 所以修改loop(x+=lowbit( ...

  8. 2019.4.summary

    2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...

  9. BZOJ刷题记录---提高组难度

    BZOJ刷题记录---提高组难度 总目录详见https://blog.csdn.net/mrcrack/article/details/90228694 序号 题号 算法 思想难度 实现难度 总难度 ...

最新文章

  1. MS SQL数据库服务介绍
  2. 转载的Web.config详解
  3. Linux下cat命令各种用法
  4. Golang源码探索(三) GC的实现原理
  5. shell与常用命令
  6. 召回 粗排 精排,如何各司其职?
  7. mysql 查询表的key_mysql查询表和字段的注释
  8. android微信风格,Android开发实现模仿微信小窗口功能【Dialog对话框风格窗口】
  9. 黑群晖vmm专业版_Virtual Machine Manager 专业版打造高效安全虚拟环境
  10. 汇编语言基础知识(二)
  11. 将CF卡移动磁盘标识改为本地磁盘标识的软件
  12. C语言——函数定义及用法【内部函数外部函数内联函数】
  13. 企业微信第三方应用添加好友
  14. 网吧lol正在连接服务器,网吧steam在连接至steam服务器时遇到问题的处理办法
  15. Ubuntu 16.04+1080Ti机器学习基本环境配置【转】
  16. Linux命令——统计文件的字符数、字节数及行数
  17. 盘点VBA中字典的写入技巧!
  18. 网络游戏数据同步的实现 一:状态同步、帧同步的基本原理概述
  19. 技术2---swagger2
  20. Siemens.LMS.Samtech.Wind.Turbines.rev15.SL1.Win32_64 2DVD

热门文章

  1. 深入理解LVS,还学不会算我输!
  2. Spring Boot 把 Maven 干掉了,正式拥抱 Gradle!
  3. 快看过来,傻瓜都能理解的 Netty 模型架构
  4. 图解 | 当我们在读写 Socket 时,我们究竟在读写什么?
  5. 【手写系列】写一个迷你版的Tomcat
  6. 【手写系列】纯手写实现一个高可用的RPC
  7. springboot-springSecurity 之 http Basic认证 (四)
  8. JEECMS自定义标签开发步骤
  9. 框架:SpringMVC常用注解总结
  10. 获取application.yml中的属性的方法