Link:

BZOJ 1452 传送门

Solution:

二维树状数组模板题

发现颜色数很少$c<=100$,因此对于每个颜色都建一棵二维线段树即可

(第一次写二维数据结构,发现套个循环就行了?)

Code:

#include <bits/stdc++.h>using namespace std;
const int MAXN=305,MAXC=105;
int bit[MAXN][MAXN][MAXC],col[MAXN][MAXN],n,m,q;int lowbit(int x){return x&(-x);}
void Update(int x,int y,int c,int val)
{for(int i=x;i<=n;i+=lowbit(i))for(int j=y;j<=m;j+=lowbit(j))bit[i][j][c]+=val;
}
int Query(int x,int y,int c)
{int ret=0;for(int i=x;i;i-=lowbit(i))for(int j=y;j;j-=lowbit(j))ret+=bit[i][j][c];return ret;
}int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) for(int j=1;j<=m;j++)scanf("%d",&col[i][j]),Update(i,j,col[i][j],1);scanf("%d",&q);while(q--){int op,x1,x2,y1,y2,c;scanf("%d",&op);if(op==1){scanf("%d%d%d",&x1,&y1,&c);Update(x1,y1,col[x1][y1],-1);col[x1][y1]=c;Update(x1,y1,c,1);}else{scanf("%d%d%d%d%d",&x1,&x2,&y1,&y2,&c);int res=Query(x2,y2,c)+Query(x1-1,y1-1,c);res-=(Query(x2,y1-1,c)+Query(x1-1,y2,c));printf("%d\n",res);}}return 0;
}

转载于:https://www.cnblogs.com/newera/p/9231273.html

[BZOJ 1452] Count相关推荐

  1. [bzoj 1452] [JSOI2009]Count

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

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

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

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

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

  4. BZOJ 1452 [JSOI2009] Count

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

  5. [BZOJ 2588]Count on a tree

    传送门 LCA+主席树(可持久化线段树) 取一个点为根,每棵线段树记录树上节点到根的链上的权在数轴上的分布(当然要离散化), 则对于两个点u,v的路径上的数在数轴上的分布可以表示为tree[u]+tr ...

  6. BZOJ 2588 Spoj 10628 Count on a tree | 树上主席树

    BZOJ 2588 Count on a tree 题面 求树上两点之间路径上第k大的点权. 题解 一开始看到这道题觉得是树剖,然后又听说是主席树,然后以为是主席树+树剖,差点没吓死-- 然后发现,如 ...

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

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

  8. html语言中kbd的含义,HTML kbd键盘元素

    1. 说明 kbd :即Keyboard Input Element(键盘输入元素).表示键盘按键的语义元素,常用于网页上对快捷键.按键说明的场景. 样式规格:内联样式. 为了在页面上突出显示,可以给 ...

  9. 一句话题解(20170801~20170125)

    8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...

最新文章

  1. DOS获取局域网内所有正在使用的ip地址
  2. 深入浅出,Spring 框架和 Spring Boot 的故事
  3. Couldn‘t connect to session bus: Did not receive a reply. Possible causes include: the remote applic
  4. python是偏向bs还是cs_CS与BS架构区别、比较、及现状与趋势分析
  5. java向数组中插入元素
  6. MySQL 指定过滤条件
  7. 内外网映射 html缓存问题_浅谈内存映射
  8. redis-cli 链接redis命令
  9. selenium启动火狐浏览器_selenium之nodejs入门使用
  10. 终于完成了:为什么吾非要亲自搞CDKEY
  11. Qt Embedded性能优化详解
  12. 工序模拟程序设计C语言设计,B版:毕业设计基于51单片机的C语言程序设计实训100例B4.1(备份存档)...
  13. VMware下linux ubuntu 虚拟机复制粘贴-宿主机
  14. 设计模式学习 — 代理模式
  15. 国信长天蓝桥杯嵌入式类——stm32——使用keil4建立工程文件过程
  16. Linux基础篇之权限的设定
  17. stm32学习笔记-1 STM32简介
  18. 深度学习之GPU环境配置
  19. 鼎捷 易飞 ERP 9.0.12.0 下载 算号 注册
  20. jdk-8u281/jdk-8u301 下载,Linux、Windows、Mac

热门文章

  1. 【51单片机快速入门指南】4.4:I2C 读取HMC5883L / QMC5883L 磁力计
  2. JavaScript HTML DOM
  3. 【python】动态调用函数名
  4. 【Mac】tar 打包指定目录并排除某些目录或文件
  5. 前端学习(3257):js高级教程(1)准备
  6. 前端学习(3068):vue+element今日头条管理-日期处理
  7. [vue] 分析下vue项目本地开发完成后部署到服务器后报404是什么原因呢?
  8. 前端学习(2844):ui另一种按需加载
  9. 前端学习(2669): vue3.0实战开始建立新项目
  10. 前端学习(2650):composition组件