線段樹練習題一 離散化

2021-09-26 06:57:45 字數 1066 閱讀 3299

>description

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

第一行輸入乙個整數n,表示桌面總寬度

第二行輸入乙個整數m,表示盒子數量

接下來m行,每行輸入兩個數x,y,表示第i個盒子的起始位置和終止位置

>output

陰影寬度

>sample input204

1 53 8

7 10

13 19

>sample output

15>解題思路

離散化模板。

>**

#include 

#include

#include

using namespace std;

struct box

a[100005];

int l, n, ans, b[

200005];

int main()

sort

(b +

1, b +1+

2* n)

;//排序

for(int i =

2; i <=

2* n; i++

)//掃離散陣列

for(int j =

1; j <= n; j++

)//原陣列

if(b[i]

> a[j]

.x && b[i]

<= a[j]

.y)printf

("%d"

, ans)

;return0;

}

線段樹練習題一(離散化做法)

time limit 10000ms memory limit 65536k total submit 228 accepted 76 case time limit 1000ms description 桌子上零散地放著若干個盒子,桌子的後方是一堵牆。如右圖所示。現在從桌子的前方射來一束平行光,把...

線段樹練習題一

線段樹練習題一 description 桌子上零散地放著若干個盒子,桌子的後方是一堵牆。如右圖所示。現在從桌子的前方射來一束平行光,把盒子的影子投射到了牆上。問影子的總寬度是多少?分析 給線段樹每個節點增加乙個域cover。cover 1表示該結點所對應的區間被完全覆蓋,cover 0表示該結點所對...

線段樹 線段樹練習題一

桌子上零散地放著若干個盒子,桌子的後方是一堵牆。如右圖所示。現在從桌子的前方射來一束平行光,把盒子的影子投射到了牆上。問影子的總寬度是多少?第一行,乙個數m代表桌面寬度 第二行,乙個數n代表盒子數量 第2到n 2行,每行兩個數代表盒子開始與結束的位置 output 乙個數,影子的總寬度 sample...