兩個管道相交是啥情況?
有環展鏈 我們把環展成鏈過後 發現只會出現如下圖兩種情況
然後我們維護二維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變成了什麼。每次修改我會...