線段樹練習三 題解

2021-10-09 00:04:27 字數 1099 閱讀 3591

線段樹練習三

給定一條長度為m

mm的線段,有n

nn個操作,每個操作有3個數字x

xx,y

yy,z

zz表示把區間[x

xx,y

yy]染成顏色z

zz,詢問染完色之後,這條長度為m

mm的線段一共有幾種顏色。規定:線段的顏色可以相同。連續的相同顏色被視作一段。問x

xx軸被分成多少段。

input

20 //四條,總長度為20

10 19 1

2 9 2

5 13 3

15 17 4

output

7樣例解釋

搜尋覆蓋

完全覆蓋標為顏色號,多種顏色標為-1

如果與前一段的顏色不一樣

段數+1

#include

#include

using namespace std;

int n,m,x,y,ans,t[2000020],now=-1,c;

void in(int d,int l,int r,int x,int y,int color)

if(x>=mid)

in(d*2+1,mid,r,x,y,color)

;else

if(y<=mid)

in(d*2,l,mid,x,y,color)

;else

//繼續找

}}void tj(int d)

return;}

tj(d*2)

; tj(d*2+1)

; //繼續搜

}int main(

) tj(1)

; cout<

return 0;

}

線段樹練習二 題解

線段樹練習二 桌子上零散地放著若干個不同顏色的盒子,桌子的後方是一堵牆。如右圖所示。問從桌子前方可以看到多少個盒子?假設人站得足夠遠 輸入時,由底向上,從左到右 16 桌子長度 5 盒子數量 4 712 14 1 56 10 11 16 output 41 n nn 100000,1 m mm 10...

線段樹練習題三 線段樹

description 給定一條長度為m的線段,有n個操作,每個操作有3個數字x,y,z表示把區間 x,y 染成顏色z,詢問染完色之後,這條長度為m的線段一共有幾種顏色。規定 線段的顏色可以相同。連續的相同顏色被視作一段。問x軸被分成多少段。第一行輸入兩個整數n,m,表示有n個操作,長度為m的線段 ...

線段樹練習題三(線段樹)

description 給定一條長度為m的線段,有n個操作,每個操作有3個數字x,y,z表示把區間 x,y 染成顏色z,詢問染完色之後,這條長度為m的線段一共有幾種顏色。規定 線段的顏色可以相同。連續的相同顏色被視作一段。問x軸被分成多少段。4 20 四條,總長度為20 10 19 1 2 9 2 ...