bzoj1452: [JSOI2009]Count
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相关推荐
- BZOJ1452 [JSOI2009]Count 树状数组
欢迎访问~原文出处--博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1452 题意概括 一个n*m的矩阵,现在有2种操作: 修改某一个位置的值 求一个子矩阵某值的出现次数 ...
- 【BZOJ1452】[JSOI2009]Count(树状数组)
[BZOJ1452][JSOI2009]Count(树状数组) 题面 BZOJ 洛谷 题解 数据范围这么小?不是对于每个颜色开一个什么东西记一下就好了吗. 然而我不会二维树状数组? 不存在的,凭借多年 ...
- 二维树状数组(bzoj 1452: [JSOI2009]Count)
1452: [JSOI2009]Count Time Limit: 10 Sec Memory Limit: 64 MB Submit: 2496 Solved: 1451 [Submit][St ...
- [bzoj 1452] [JSOI2009]Count
[bzoj 1452] [JSOI2009]Count Description Input Output Sample Input Sample Output 1 2 HINT 二维树状数组裸题,建立 ...
- [BZOJ1452/Luogu4054][JSOI2009]Count计数问题
题目链接: BZOJ1452 Luogu4054 二维树状数组题(或许可以毒瘤树套树) 注意到值域范围为\(100\),对每个数开一个二维树状数组,在对应的树状数组上修改查询即可. 时间复杂度 \(O ...
- 二维树状数组 BZOJ 1452 [JSOI2009]Count
题目链接 裸二维树状数组 #include <bits/stdc++.h>const int N = 305; struct BIT_2D {int c[105][N][N], n, m; ...
- BZOJ 1452 [JSOI2009] Count
这道题好像有点简单的样子... absi找题目好厉害啊...确实是一道比较裸的2dBIT啊. 水掉吧. 附:2dBIT怎么做: 2dBIT就是BIT套BIT啦. 所以修改loop(x+=lowbit( ...
- 2019.4.summary
2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...
- BZOJ刷题记录---提高组难度
BZOJ刷题记录---提高组难度 总目录详见https://blog.csdn.net/mrcrack/article/details/90228694 序号 题号 算法 思想难度 实现难度 总难度 ...
最新文章
- MS SQL数据库服务介绍
- 转载的Web.config详解
- Linux下cat命令各种用法
- Golang源码探索(三) GC的实现原理
- shell与常用命令
- 召回 粗排 精排,如何各司其职?
- mysql 查询表的key_mysql查询表和字段的注释
- android微信风格,Android开发实现模仿微信小窗口功能【Dialog对话框风格窗口】
- 黑群晖vmm专业版_Virtual Machine Manager 专业版打造高效安全虚拟环境
- 汇编语言基础知识(二)
- 将CF卡移动磁盘标识改为本地磁盘标识的软件
- C语言——函数定义及用法【内部函数外部函数内联函数】
- 企业微信第三方应用添加好友
- 网吧lol正在连接服务器,网吧steam在连接至steam服务器时遇到问题的处理办法
- Ubuntu 16.04+1080Ti机器学习基本环境配置【转】
- Linux命令——统计文件的字符数、字节数及行数
- 盘点VBA中字典的写入技巧!
- 网络游戏数据同步的实现 一:状态同步、帧同步的基本原理概述
- 技术2---swagger2
- Siemens.LMS.Samtech.Wind.Turbines.rev15.SL1.Win32_64 2DVD