SSL P2646 線段樹練習題三

2021-10-08 09:39:45 字數 1344 閱讀 7703

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

資料規模

n <= 10000

m <= 1000000

這道題…算了,**多好看

#include

#include

using

namespace std;

long

long n,m,tree[

4000010

],h[

4000010

],ans;

voidin(

long

long x,

long

long l,

long

long r,

long

long a,

long

long b,

long

long z)

if(b<=mid)

in(x*

2,l,mid,a,b,z)

;else

if(a>mid)

in(x*2+

1,mid+

1,r,a,b,z)

;else}}

long

longhh(

long

long x,

long

long l,

long

long r,

long

long

&lc,

long

long

&rc)

if(r==l)

return1;

long

long sum=

hh(x*

2,l,mid,lc,lt)+hh

(x*2+1

,mid+

1,r,rt,rc)

;return sum-

(lt==rt?1:

0);}

intmain()

long

long hhh=

0,hhhh=0;

cout<

1,1,m,hhh,hhhh)

<

}

SSL ZYC 2646 線段樹練習題三

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

SSL 2646 線段樹練習題三

ssl 2646 線段樹練習題三 給定一條長度為m的線段,有n個操作,每個操作有3個數字x,y,z表示把區間 x,y 染成顏色z,詢問染完色之後,這條長度為m的線段一共有幾種顏色。規定 線段的顏色可以相同。連續的相同顏色被視作一段。問x軸被分成多少段。若乙個區間有多個顏色,則標記為 1,否則標記為具...

SSL ZYC 2646 線段樹練習題三

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