線段樹練習2 影子的寬度 統計標記個數

2021-07-26 14:45:09 字數 1244 閱讀 5419

桌子上零散地放著若干個盒子,盒子都平行於牆。桌子的後方是一堵牆。如圖所示。現在從桌子的前方射來一束平行光,把盒子的影子投射到了牆上。問影子的總寬度是多少?

第1行:3個整數l,r,n。-100000 <=l<=r<= 100000,表示牆所在的區間;1<=n<=100000,表示盒子的個數

接下來n行,每行2個整數bl, br,-100000 <=bl<=br<= 100000,表示乙個盒子的左、右端點

輸出僅為乙個整數w,表示影子的總寬度。

1 10 3

3 5

1 4

7 8

統計標記個數(區間修改區間查詢)

data直接置1不管懶標記

queryleft~right隨便亂查

注意要加偏移量

因為c++的負數向0取整,會導致堆式編號出錯

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

inline const int get_int()

while(x>='0'&&x<='9')

return num*bj;

}const int maxn=600000;

struct tree ;

struct segment_tree

void modify(int

index,int left,int right)

modify(index*2,left,right);

modify(index*2+1,left,right);

}void init()

void query(int

index,int left,int right)

query(index*2,left,right);

query(index*2+1,left,right);

}};segment_tree st;

int left,right,n,delta;

int main()

st.init();

st.query(1,left,right);

printf("%d\n",st.sum);

return

0;}

線段樹練習3 盒子的個數 統計標記種類

桌子上零散地按照後先後順序放著若干個盒子,盒子都平行於牆。桌子的後方是一堵牆。如圖所示。問從桌子前方可以看到多少個盒子?假設人站得足夠遠。第1行 3個整數l,r,n。100000 l r 100000,表示牆所在的區間 1 n 100000,表示盒子的個數 接下來n行,每行2個整數bl,br,100...

4927 線段樹練習5 多重標記

時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解檢視執行結果 有n個數和5種操作 add a b c 把區間 a,b 內的所有數都增加c set a b c 把區間 a,b 內的所有數都設為c sum a b 查詢區間 a,b 的區間和 max a b 查詢區間 a,b 的最...

codevs 1081 線段樹練習 2 線段樹

題目描述 description 給你n個數,有兩種操作 1 給區間 a,b 的所有數都增加x 2 詢問第i個數是什麼?輸入描述 input description 第一行乙個正整數n,接下來n行n個整數,再接下來乙個正整數q,表示操作的個數.接下來q行每行若干個整數。如果第乙個數是1,後接3個正整...