SSL ZYC 2644 線段樹練習題一

2022-09-03 07:09:09 字數 911 閱讀 2514

題目大意:

以從左往右,從後往前的順序給出一些線段。最後從前面可以看見多少條線段?

思路:

模擬?100%超時

離散?100%爆記憶體

所以,這道題的最優解是——

我也不知道

———下面進入正題———

一道模板題吧。

對於tree[x]:

tree[x].l為它的左端點

tree[x].r為它的右端點

tree[x].cover表示它是否有線段

tree[x*2]為它的左兒子

tree[x*2+1]為它的右兒子

1.建樹

2.輸入,記錄

3.計算總長度,輸出,ac

**:

#include 

#include

using

namespace

std;

int n,sum,m,x,y;

struct n

tree[100001];

void make(int x) //建樹

void insert(int x,int l,int r) //插入

int mid=(tree[x].l+tree[x].r)/2;

if (mid>=r) //完全在左邊

if (mid<=l) //完全在右邊

insert(x*2,l,mid);

insert(x*2+1,mid,r); //左右都有

}int count(int x) //計算

int main()

printf("%d\n",count(1)); //輸出

return

0;}

SSL P2644 線段樹練習題一

題目大意 乙個n長度的桌面上有m個箱子,給出每個箱子所佔的寬度最左端,最右端 l,r 從桌子的前方射來一束平行光,把盒子的影子投射到了牆上。求影子的總寬度。資料範圍 1 n 100000,1 m 100000 1 l r n 題解 線段樹 1.建乙個線段樹,如果 a,b 區間在 l,r 區間內,並且...

SSL P2644 線段樹練習題一

桌子上零散地放著若干個盒子,桌子的後方是一堵牆。如右圖所示。現在從桌子的前方射來一束平行光,把盒子的影子投射到了牆上。問影子的總寬度是多少?2041 5387 1013 1915資料範圍 1 n 100000,1 m 100000,保證座標範圍為 1,n 一波線段樹猛如虎,再看時間 算了,看 吧 i...

SSL ZYC 2646 線段樹練習題三

題目大意 給定一條長度為m的線段,有n個操作,每個操作有3個數字x,y,z表示把區間 x,y 染成顏色z。規定 線段的顏色可以相同。連續的相同顏色被視作一段。問x軸被分成多少段。思路 這道題與 線段樹練習二 極其相似,唯一的區別在於count函式需要判斷兩根相交的線是否為同乙個顏色。include ...