二維線段樹 POJ 2155 Matrix

2021-06-08 23:35:34 字數 1182 閱讀 4290

**風格:www.notonlysuccess.com

題目大意:剛開始,整個矩陣為0;c操作:對乙個矩陣進行0,1取反; q操作求該點的數字是什麼;
演算法:二維線段樹,具體自己模擬吧
#include#include#include#include#include#include#include#includeusing namespace std;

#define lson l, m, rt << 1

#define rson m+1, r, rt << 1 | 1

#define mid int m = (l + r) >> 1

int sum[4005][4005], n, t, m, ans;

void updatey(int l, int r, int l, int r, int rt, int temp)

mid ;

if(l <= m )

updatey(l, r, lson, temp);

if(m < r)

updatey(l, r, rson, temp);

}void update(int lx, int ly, int rx, int ry, int l, int r, int rt)

mid ;

if(lx <= m)

update(lx, ly, rx, ry, lson);

if(m < rx)

update(lx, ly, rx, ry, rson);

}void queryy(int temp, int b, int l, int r, int rt)

mid ;

if(b <= m)

queryy(temp, b, lson);

else queryy(temp, b, rson);

}void query(int a, int b, int l, int r, int rt)

int main()

else

}printf("\n");

} return 0;

}

poj2155 二維線段樹

題目大意 給定初始n n矩陣,所有數都是0,然後有 c 操作 對左上角 x1,y1 到右下角 x2,y2 的矩陣中所有數取非,即0變1,或1變0 還有 q 操作 查詢點 x,y 的值並輸出。思路 構造乙個線段樹,每個結點還是線段樹,外圍線段樹表示x方向,子線段樹表示y方向。查詢時對結點 x,y 所在...

POJ 2155 二維線段樹

題意 給乙個01矩陣,每次可以進行操作將 x1,x2,y1,y2 內的所有元素0變1 1變0。也可以進行詢問,詢問某乙個格仔的0和1。輸出詢問。思路 二維線段樹版題,稍微轉化一下記錄查詢乙個點時它所經過的路徑上經過偶數次修改就為0,奇數次為1。線段樹有兩種寫法,第一種把下標放在樹的結點中,時不時會m...

二維線段樹 poj 2155

題意 t組樣例 輸入 n,m,表示n n的矩陣進行m次操作 c 輸入兩個座標 組成的矩形 進行取反操作 q 對輸的座標位置輸入其值。思路 一開始想的是用1000 表示x軸 個線段樹 對每段y進行操作 來記錄,也是二維的 第一維暴力 第二維線段樹 結果ti 原來還有二維線段樹,每個對應的節點都有一顆線...