12題解:對於每乙個顏色建乙個二維的樹狀陣列o(c*logn*logm),試了試對每個顏色,每行建乙個一維陣列,超時了。。。o(c*n*logm)
若一維樹狀陣列不會:
1 #include 2 #include 3 #include 45view codeusing
namespace
std;
6#define maxn 30278
intn,m;
9int
g[maxn][maxn];
10int tree[102][maxn][maxn]; //
顏色,行,列
1112
int lowbit(int x)
1314
void update(int c,int x,int y,int
add)
1520
21int getsum(int c,int x,int
y)22
2930
intmain()
3155
if (op==2)56
64}65return0;
66 }
BZOJ 1452 Count(二維樹狀陣列)
題意 給出乙個數字矩陣 矩陣中任何時候的數字均為 1,100 兩種操作 1 修改某個位置的數字 2 求某個子矩陣中某個數字的個數。思路 二維樹狀陣列的操作看起來跟一維的差不多,只是迴圈改為兩重而已。主要操作有 1 增加某個位置的值 2 詢問 1,1,x,y 子矩陣的和。利用 2 操作以及區間的減法操...
樹狀陣列 二維
首先初始陣列還是a陣列,二維的 搞乙個b陣列,也是二維,b i 就是a陣列第i行的一維樹狀陣列 b 2 1 a 2 1 b 2 2 a 2 1 a 2 2 b 2 3 a 2 3 最後我們來搞乙個c陣列,當然它還是二維的hhh c 1 就是第一行的樹狀陣列,c 2 是第一行加第二行,c 3 是第三行...
二維樹狀陣列
什麼是二維樹狀陣列 二維樹狀陣列 單點修改,區間查詢 include const int maxn 4096 5 typedef long long ll ll c maxn maxn int n,m int lowbit int x void modify int x,int y,int z ll...