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...