NOIP 校內模擬 行星通道計畫(二維樹狀陣列)

2021-08-29 18:45:26 字數 868 閱讀 9674

兩個管道相交是啥情況?

有環展鏈 我們把環展成鏈過後 發現只會出現如下圖兩種情況

然後我們維護二維bit1:表示左端點小於等於x 右端點小於等於y的個數

bit2:左端點大於等於x 右端點小於等於y

bit3:左端點大於等於x 右端點大於等於y

查詢就很簡單了

對於操作1相當於乙個更新

#include#define n 1005

#define m 500005

using namespace std;

int n,m,tree1[n][n],tree2[n][n],tree3[n][n];

inline int read()

inline int lowbit(int x)

inline int query1(int x,int y) //左端點小於等於x 右端點小於等於y

inline int query2(int x,int y) //左端點大於等於x 右端點小於等於y

inline int query3(int x,int y) //左端點大於x 右端點大於y

inline void update1(int x,int y,int v)

inline void update2(int x,int y,int v)

inline void update3(int x,int y,int v)

struct s

guan[m];

int main()

if(opt==1)}}

NOIP模擬 行星通道計畫

時限500ms 考完才發現,很裸的二維樹狀陣列也能過 可以畫圖發現,能滿足兩條線相交,只有兩種情況 1.大的比大的大,小的在中間 9比7大,2在1和7中間 2.小的比小的小,大的在中間 或者說1比2小,7在2和9中間 還有各種修改操作,第乙個想到的就是樹狀陣列,線段樹之類的。而二維樹狀陣列維護的就是...

NOIP模擬 行星通道計畫(二維樹狀陣列)

考慮樹狀陣列維護狀態,然後。就沒有然後了。沒想出來二維如何統計。感覺正解很毒瘤啊,各種壓位操作。所以正常打個二維樹狀陣列還是能過啊。考慮兩個連線點x,y,如果以後有兩個點x y 經過他,那麼一定滿足xusing namespace std const int maxn 1e3 10 const in...

NOIP模擬 行走

我有個願望,我希望走到你身邊。這是個奇異的世界,世界上的n 1條路聯結起來形成一棵樹,每條路有乙個對應的權值ci。現在我會給出q組詢問或操作。每次詢問我會從乙個x點走到y點,初始在x點我會有乙個數字v,然後每走過一條權值為c的邊,我的v就會變成v c 向下取整 問最後到y時v變成了什麼。每次修改我會...