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

2021-10-08 09:35:37 字數 1279 閱讀 9214

description

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

4 20 //四條,總長度為20

10 19 1

2 9 2

5 13 3

15 17 4

sample output

hint

資料規模

n <= 10000

m <= 1000000

線段樹練習題一

#include

#include

#include

#include

using

namespace std;

int n,m,x,y,z,ans,a[

4000010];

void

insert

(int dep,

int l,

int r,

int x,

int y,

int color)

//線段樹

if(a[dep]

>=0)

int mid=

(l+r)/2

;if(y<=mid)

insert(2

*dep,l,mid,x,y,color)

;else

if(x>=mid)

insert(2

*dep+

1,mid,r,x,y,color)

;else

}int

find

(int dep,

int l,

int r)

//查詢(輸出)

return

find

(dep*

2,l,mid)

+find

(dep*2+

1,mid,r);}

intmain()

ans=-1

;printf

("%d"

,find(1

,1,m))

;}

線段樹練習題三 線段樹

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

線段樹練習題三

time limit 10000ms memory limit 65536k total submit 143 accepted 45 case time limit 1000ms description 給定一條長度為m mm的線段,有n nn個操作,每個操作有3 33個數字x,y z x,y,z...

線段樹 線段樹練習題三

題解。啊好煩懶得看,於是就拿線段樹練習題二改了。給定一條長度為m的線段,有n個操作,每個操作有3個數字x,y,z表示把區間 x,y 染成顏色z,詢問染完色之後,這條長度為m的線段一共有幾種顏色。規定 線段的顏色可以相同。連續的相同顏色被視作一段。問x軸被分成多少段。input 第一行,兩個數n,m分...