BZOJ1452計數問題 二維樹狀陣列

2021-08-21 03:52:32 字數 1066 閱讀 2606

description

乙個n*m的方格,初始時每個格仔有乙個整數權值,接下來每次有2個操作:

改變乙個格仔的權值

求乙個子矩陣中某個特定權值出現的個數

input

每一行有兩個數字n,m

接下來n行,每行m個數字。第i+1行第j個數字表示格仔(i,j)的初值

接下來輸入乙個q,後面q行每行描述乙個操作

操作1:

1 x y c,表示將格仔(x,y)的值變為c

操作2:

2 x1 x2 y1 y2 c,表示詢問所有滿足格仔中數字為c的格仔數字

(n,m<=300,q<=5000)

(1<=x<=n,1<=y<=m,1<=c<=100)

(x1<=x<=x2,y1<=y<=y2)

output

對於每個操作2,按輸入中出現的順序,依次輸出一行乙個整數表示所求得的個數

sample input

3 31 2 3

3 2 1

2 1 3

2 1 2 1 2 1

1 2 3 2

2 2 3 2 3 2

sample output

這道題算是比較基礎的二維樹狀陣列題了,直接對每乙個顏色建乙個二維樹狀陣列。然後直接進行查詢即可。

#include

#define maxn 305

using namespace std;

intread()

int n,m,q,c[maxn][maxn],f[105][maxn][maxn];

int lowbit(int

x)void add(int col,int

x,int

y,int ad)

}int getsum(int col,int

x,int

y) return ans;

}int main()

q=read();

for(int i=1;i<=q;i++)

else

}return

0;}

計數問題(二)

計數問題 二 在上一講中,我們一起研究 列舉法 乘法原理 加法原理 在計數問題中的應用。但是,在實際的問題中,這些方法並不是單獨使用的。往往需要同時應用這幾種方法,這就需要我們搞清題意,根據已知條件,分別使用正確的方法,得到準確的結果。一 閱讀思考 例1.求720這個數約數的個數。分析與解 從1開始...

問題 E 計數問題

時間限制 1 sec 記憶體限制 128 mb 提交 30 解決 22 提交狀態 討論版 命題人 admin 題目描述 試計算在區間 1 到 n 的所有整數中,數字 x 0 x 9 共出現了多少次?例如,在 1 到 11 中,即在 1 2 3 4 5 6 7 8 9 10 11 中,數字 1 出現了...

序關係計數問題

序關係計數問題 問題描述 用關係 和 將3 個數a b和c依序排列時有13 種不同的序關係 a b c,a b 設n個數可列出的關係式的個數為g n 下面我們設法總結規律找出g n 的遞推關係 對於乙個關係式 a1 a2 a3.an 其中 表示 或 總存在乙個k,使a1,a2,ak,之間均用 連線,...