因為xor具有字首和性質,所以可以建立一顆二維樹狀陣列,寫起來只是稍微有點改變,感覺此題還是很不錯的,結合了資料結構和博弈。
1 #include 2 #include 3 #include 4using
namespace
std;56
const
int n = 501;7
inta[n][n];
8int
c[n][n];
9int
n, m, q;
1011
int lb( int
i )12
1516
void update( int i, int j, int
val )
1724}25
}2627int sum( int i, int
j )2836}
37return
res;38}
3940
int query( int x1, int y1, int x2, int
y2 )
4148
49int
main ()
5065}66
while ( q--)
6778
else
7982}83
else
8490}91
}92return0;
93 }
hdu 3887 樹狀陣列
給你一棵樹,每個節點都有個編號。讓你求乙個節點他的子樹中編號比他小的節點有幾個。編號唯一,從1 n,已給出根節點 解 樹狀陣列統計。轉化為線性序列。可以想到的是,若要統計乙個節點,那麼比它小的孩子必須先插完,然後統計就行了。對於乙個節點i來說,只要把所有x那麼對於所有節點來說也是這樣的,從一開始插,...
hdu 3333 樹狀陣列
此題與3743相仿,但本題資料較大,需要用到離散化。如何去掉重複元素呢?採用離線演算法 首先將詢問按右端點從小到大排序,離線處理時,記錄每個元素所在位置,遇到重複元素時,從它之前出現的位置減去這個元素,這樣就是的每個元素總是出現在最後。include include include include ...
樹狀陣列 HDU1166
繼續上次那題,我們現在採用樹狀陣列來解。樹狀陣列主要用來進行區間求和統計和定點更新操作,樹狀陣列的儲存是如下方式的 假設陣列a為a 1 a 2 a 3 a n 現在我們另陣列c 1 a 1 c 2 a 1 a 2 c 3 a 3 c 4 a 1 a 2 a 3 a 4 這是啥結構呢?其實c i a ...