bzoj1452 [JSOI2009]Count
题目链接
其实就是二维树状数组模板。
只不过要对每一种颜色开一个二维树状数组。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<string> 5 #include<cstring> 6 #include<cmath> 7 #include<algorithm> 8 #include<ctime> 9 #include<queue> 10 #include<stack> 11 #include<map> 12 #define lowbit(x) x&-x 13 using namespace std; 14 int n,m,h[333][333]; 15 struct shuzu 16 { 17 int aa[333][333]; 18 void add(const int &a,const int &b,const int &x) 19 { 20 for(int i=a;i<=n;i+=lowbit(i)) 21 for(int j=b;j<=m;j+=lowbit(j)) 22 aa[i][j]+=x; 23 } 24 int query(const int &a,const int &b) 25 { 26 int ret=0; 27 for(int i=a;i;i-=lowbit(i)) 28 for(int j=b;j;j-=lowbit(j)) 29 ret+=aa[i][j]; 30 return ret; 31 } 32 }bb[111]; 33 int getint() 34 { 35 int ret=0; 36 char ch=getchar(); 37 while(ch<'0'||ch>'9')ch=getchar(); 38 while(ch>='0'&&ch<='9')ret*=10,ret+=ch-'0',ch=getchar(); 39 return ret; 40 } 41 int main() 42 { 43 n=getint(),m=getint(); 44 for(int i=1;i<=n;i++) 45 for(int j=1;j<=m;j++) 46 { 47 h[i][j]=getint(); 48 bb[h[i][j]].add(i,j,1); 49 } 50 int q; 51 q=getint(); 52 for(int i=1;i<=q;i++) 53 { 54 int op,q,w,e,r,t; 55 op=getint(); 56 if(op==1) 57 { 58 q=getint(),w=getint(),e=getint(); 59 bb[h[q][w]].add(q,w,-1); 60 h[q][w]=e; 61 bb[e].add(q,w,1); 62 } 63 else 64 { 65 q=getint(),e=getint(),w=getint(),r=getint(),t=getint(); 66 int ret=bb[t].query(e,r)-bb[t].query(q-1,r)-bb[t].query(e,w-1)+bb[t].query(q-1,w-1); 67 printf("%d\n",ret); 68 } 69 } 70 return 0; 71 }
转载于:https://www.cnblogs.com/HugeGun/p/5151045.html
bzoj1452 [JSOI2009]Count相关推荐
- BZOJ1452 [JSOI2009]Count 树状数组
欢迎访问~原文出处--博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1452 题意概括 一个n*m的矩阵,现在有2种操作: 修改某一个位置的值 求一个子矩阵某值的出现次数 ...
- bzoj1452: [JSOI2009]Count
2维bit.每个颜色建一个. #include<cstdio> #include<algorithm> #include<cstring> using namesp ...
- 【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 序号 题号 算法 思想难度 实现难度 总难度 ...
最新文章
- java中ajax概念_Java之AJAX概念和实现方式
- Android_(消息提示)多种使用Toast的消息提示
- python读csv-python读写csv文件
- linux无显卡运行程序,Ubuntu中在应用程序菜单添加未显示的应用程序启动器
- gbdt和xgboost区别
- 金陵科技学院计算机系男女比,眼已亮瞎:719所全国高校男女比例排名
- 拖链电缆 机器人电缆_干货!拖链电缆用途及安装注意事项
- “物联网”“云计算” IT业新概念风起云涌
- 汉字转拼音,一二级词库,不支持多音字
- 5导出word_重磅更新 !支持题库导出为word
- C++_-数据类型-字符型_转义字符_字符串类型--C++语言工作笔记012
- 手把手教你用 Python 绘制酷炫的桑基图!
- 江苏高考成绩什么时候可以查询2021,2021年江苏高考成绩什么时候公布出来,几月几号几点钟可以查询...
- 前大灯是近光灯还是远光灯_夜间上高速使用近光灯?不会开车就别开,否则12分都不够扣!...
- 史上最全的C++面试宝典(合集)
- Cavium OCTEON网络处理器的安全性能
- 全屏网页时钟屏保flipclock-beautify,简约风格,电脑手机均支持访问
- 如何增加Win2003, Win2008下的文件类型下载
- 洛谷 [樱花] 题解
- 人机对话是怎么产生的?