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

2021-07-26 14:45:09 字數 1395 閱讀 2165

桌子上零散地按照後先後順序放著若干個盒子,盒子都平行於牆。桌子的後方是一堵牆。如圖所示。問從桌子前方可以看到多少個盒子?假設人站得足夠遠。

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

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

輸出僅為乙個整數m,表示可看到的盒子個數。

1 10 4

3 5

1 4

2 6

7 8

統計標記種類(區間修改區間查詢)

我的做法很神奇

直接給區間乙個顏色(序號不同顏色不同)

然後查到了就hash顏色

最後統計hash

別忘了加偏移量

#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;

int hash[maxn];

struct tree ;

struct segment_tree

void push_down(int

index)

}void modify(int

index,int left,int right,int color)

push_down(index);

modify(index*2,left,right,color);

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

}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.query(1,left,right);

intsum=0;

for(int i=1; i<=n; i++)

if(hash[i])sum++;

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

return

0;}

線段樹練習3

給定一條長度為m的線段,有n個操作,每個操作有3個數字x,y,z表示把區間 x,y 染成顏色z。規定 線段的顏色可以相同。連續的相同顏色被視作一段。詢問染色後的線段被分為多少段。線段樹 cover 1表示該區間由多種顏色組成。cover 0表示該區間只有一種單一的顏色cover。和線段樹練習2差不多...

css3盒子相關樣式

1 css3的display屬性 inline 內聯 inline block 可以設定寬高的內聯 block 設定為塊 doctype html html lang en head meta charset utf 8 title css3盒子型別 title style inline 內聯,in...

CSS3盒子陰影box shadow

來自w3cschool的解釋 語法 box shadow h shadow v shadow blur spread color inset 值描述 h shadow 必需。水平陰影的位置。允許負值。v shadow 必需。垂直陰影的位置。允許負值。blur 可選。模糊距離。spread 可選。陰影...