校門外的樹

2021-10-14 07:54:22 字數 2348 閱讀 1995

校門外的樹

time limit:10000ms memory limit:65536k

total submit:66 accepted:27

case time limit:1000ms

description

校門外有很多樹,有蘋果樹,香蕉樹,有會扔石頭的,有可以吃掉補充體力的……

如今學校決定在某個時刻在某一段種上一種樹,保證任一時刻不會出現兩段相同種類的樹,現有兩個操作:

k=1,讀入l,r表示在l~r之間種上的一種樹

k=2,讀入l,r表示詢問l~r之間能見到多少種樹

(l,r>0)

input

第一行n,m表示道路總長為n,共有m個操作

接下來m行為m個操作

output

對於每個k=2輸出乙個答案

sample input

5 41 1 3

2 2 5

1 2 4

2 3 5

sample output12

hint

範圍:20%的資料保證,n,m<=100

60%的資料保證,n <=1000,m<=50000

100%的資料保證,n,m<=50000

其實就是只一段區間記錄它的「head」,「tail」

若你要查詢』[x,y]'中樹的總種數,則就可以轉化為

『 y』

左邊有多

少個『[

x1,y

1]』的

『x1』

−′x′

左邊有多

少『[x

1,y1

]』的『

y1』『~y~』左邊有多少個『~[x^1~,y^1~]~』的『~x^1~』~-~'~x~'左邊有多少『~[x^1~,y^1~]~』的『~y^1~』

『y』左邊有

多少個『

[x1,

y1]』

的『x1

』−′x

′左邊有

多少『[

x1,y

1]』的

如圖:要查詢「5~11」這個區間

則 『 y』

左邊有多

少個『[

x1,y

1]』的

『x1』

『~y~』左邊有多少個『~[x^1~,y^1~]~』的『~x^1~』

『y』左邊有

多少個『

[x1,

y1]』

的『x1

』指的是

圈起來的點,就是這段區間的顏色總種數,也就是一條線段『 [1,y] 』的左端的個數

…………你細品……細品……

而′ 左邊

有多少『

[x1,

y1]』

的『y1

』'左邊有多少『~[x^1~,y^1~]~』的『~y^1~』

′左邊有多少

『[x1

,y1]

』的『y

1』指的是:

…………你細品……細品……

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

const

int n=

1e6+

100,m=

32005

;int n,m,s,x,y,a[n]

,c[n]

,d[n]

;//c存左端點,d存右端點

int add (

int x)

void put1 (

int x,

int y)

void put2 (

int x,

int y)

//ctrl+v

int find1 (

int x)

int find2 (

int x)

//ctrl+v

int main (

)return0;

}

校門外的樹

描述 某校大門外長度為 l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是 1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸 0的位置,另一端在 l的位置 數軸上的每個整數點,即0,1,2 l,都種有一棵樹。馬路上有一些區域要用來建地鐵,這些區域用它們在數軸上的起始點和終止點表示。已知任一區域的起...

校門外的樹

某校大門外長度為l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸0的位置,另一端在l的位置 數軸上的每個整數點,即0,1,2,l,都種有一棵樹。由於馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已知任一區域的起始點和終止...

校門外的樹

校門外的樹 題目描述 某校大門外長度為l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸0的位置,另一端在l的位置 數軸上的每個整數點,即0,1,2,l,都種有一棵樹。由於馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已知...