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

2021-10-08 09:02:26 字數 1277 閱讀 7697

time limit:10000ms memory limit:65536k

total submit:228 accepted:76

case time limit:1000ms

description

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

20 //桌面總寬度

4 //盒子數量

1 53 8

7 10

13 19

sample output

15hint

資料範圍

1

<=n

<

=100000,1

<=m

<

=100000

1<=n<=100000,1<=m<=100000

1<=n

<=1

0000

0,1<=m

<=1

0000

0,保證座標範圍為[1,

n][1,n]

[1,n].

解題思路

這道題也算模板題了吧,可以用線段樹做,離散化做會很慢,所以安利線段樹做法。

**

離散化

#include

#include

#include

#include

using namespace std;

int n,l,ans,x[

100010

],y[

100010

],a[

300000];

int main()

sort

(a+1

,a+2

*n+1);

for(int i=

1;i<=n*

2;i++)}

}printf

("%d"

,ans)

;}

線段樹練習題一 離散化

description 桌子上零散地放著若干個盒子,桌子的後方是一堵牆。如右圖所示。現在從桌子的前方射來一束平行光,把盒子的影子投射到了牆上。問影子的總寬度是多少?第一行輸入乙個整數n,表示桌面總寬度 第二行輸入乙個整數m,表示盒子數量 接下來m行,每行輸入兩個數x,y,表示第i個盒子的起始位置和終...

線段樹練習題一

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

線段樹 線段樹練習題一

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