模板- 数据结构 - 二维树状数组 二维树状数组涉及到两种基本操作,修改矩阵中的一个点,查询子矩阵的和。 首先是修改点: voidupdate(intx,inty,intz) {for(inti=x;i<=n;i+=lowbit(i))for(intj=y;j<=m;j+=lowbit(j)) c[i][j]+=z; } 然后是查询前缀和: intget_sum(intx,inty) {intret=0;fo...
树状数组 https://oi-wiki.org/ds/fenwick/ 题目描述 这是一道模板题。 给出一个 n×m 的零矩阵 A,你需要完成如下操作: 1 x y k:表示元素 A_{x,y} 自增 k; 2 a b c d:表示询问左上角为 (a,b),右下角为 (c,d) 的子矩阵内所有数的和。 输入格式 输入的第一行有两个正整数 n, m; ...
二维树状数组模板 完全版 1 #include <cstdio> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace std; 6 int lowbit(int x) 7 { 8 return x&(-x); 9 } 10 struct tree_arr 11 { 12 int c[1005]; 13 tree_arr() 14 { 15 clear(); 16 } 17 void ...
POJ Monthly,Lou Tiancheng 二维树状数组的经典例题 二维数组 题意:一个n*n的矩阵,矩阵里的每一个数要么是0,要么是1。 有两种操作,C操作是将区间[(x1,y1),(x2,y2)]中所有的数反转(0变1,1变0),Q操作是查询f[x][y]的数值。 分析: 根据这个题目中介绍的这个矩阵中的数的特点不是1就是 0,这样我们...
BZOJ 1452 Count 【模板】二维树状数组 2017-12-06 19:40 −... Driver_Lao 0 161 BZOJ 4664: Count 插块DP 2019-12-14 14:50 −题解链接 CODE #pragma GCC optimize (2) #include <bits/stdc++.h> using namespace... _Ark 0 117 ...
很明显的 二维树状数组 注意 灯亮过了就不能再亮了 而且灯关了就不能再关了 所以可以用一个flag数组标记是否可以进行关灯开灯操作 注意下标要从1开始 题目从0开始 所以要加1 #include<stdio.h>#include<string.h>constintN=1003;intc[N+5][N+5],flag[N+5][N+5],n,m;intmmax(inta,intb){return...
树状数组 https://oi-wiki.org/ds/fenwick/ 题目描述 这是一道模板题。 给出一个 n×m 的零矩阵 A,你需要完成如下操作: 1 x y k:表示元素 A_{x,y} 自增 k; 2 a b c d:表示询问左上角为 (a,b),右下角为 (c,d) 的子矩阵内所有数的和。 输入格式 输入的第一行有两个正整数 n, m;接...
二维树状数组(模板) 1.单点修改,区间查询 #include<bits/stdc++.h>#definere return#definell long long#definelowbit(x) (x&(-x))#defineinc(i,l,r) for(int i=l;i<=r;++i)usingnamespacestd; template<typename T>inlinevoidrd(T&x) {charc;boolf=0;while((c=getchar())<'0'||c>'9')...
二维树状数组模板(区间修改+区间查询) 例题:JOIOI上帝造题的七分钟 一共两种操作: Lx1y1x2y2dLx1y1x2y2d:把(x1,y1)(x1,y1),(x2,y2)(x2,y2)这个矩形内所有元素加dd。 kx1y1x2y2kx1y1x2y2:查询(x1,y1)(x1,y1),(x2,y2)(x2,y2)这个矩形内所有元素的和。
树状数组 https://oi-wiki.org/ds/fenwick/ 自己挖坑 XXX XXX 题目描述 这是一道模板题。 给定一个大小为 N×M 的零矩阵,直到输入文件结束,你需要进行若干个操作,操作有两类: 1 a b c d x,表示将左上角为 (a,b),右下角为 (c,d) 的子矩阵全部加上 x; 2 a b c d,表示询问左上角为 (a,...