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