校門外的樹 (樹狀陣列)題解

2021-10-09 06:50:57 字數 1276 閱讀 2577

校門外的樹

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

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

k

kk=1,讀入l

ll,r

rr表示在l

ll~r

rr之間種上的一種樹

k

kk=2,讀入l

ll,r

rr表示詢問l~r之間能見到多少種樹

(l

ll,r

rr>0)

第一行n

nn,m

mm表示道路總長為n

nn,共有m

mm個操作

接下來m

mm行為m

mm個操作

對於每個k

kk=2輸出乙個答案

input

5 41 1 3

2 2 5

1 2 4

2 3 5

output12

樹狀陣列

舉個栗子:

(6)10=(110)2

(-6)10=(010)2

原數+lowbit得8

原數-lowbit得4

這種神神奇奇的東西,不能言傳只能意會

累加時

左邊統計左括號(也就是左邊界)

右邊統計右括號(也就是右邊界)

詢問時

1~右邊界裡有幾個左括號

減去1~左邊界-1裡有幾個右括號

#include

#include

using namespace std;

int p,l,r,n,m,a[50100],b[50100]

;void add(int x)

void add2(int x)

int tj2(int x)

int tj(int x)

int main(

)return 0;

}

樹狀陣列 校門外的樹

樹狀陣列 校門外的樹 時間限制 1 sec 記憶體限制 128 mb 題目描述 校門外有很多樹,有蘋果樹,香蕉樹,有會扔石頭的,有可以吃掉補充體力的 如今學校決定在某個時刻在某一段種上一種樹,保證任一時刻不會出現兩段相同種類的樹,現有兩個操作 k 1,k 1,讀入l r表示在區間 l,r 中種上一種...

校門外的樹 樹狀陣列

time limit 10000ms memory limit 65536k total submit 55 accepted 20 case time limit 1000ms description 校門外有很多樹,有蘋果樹,香蕉樹,有會扔石頭的,有可以吃掉補充體力的 如今學校決定在某個時刻在某...

校門外的樹(樹狀陣列)

description 校門外有很多樹,有蘋果樹,香蕉樹,有會扔石頭的,有可以吃掉補充體力的 如今學校決定在某個時刻在某一段種上一種樹,保證任一時刻不會出現兩段相同種類的樹,現有兩個操作 k 1,讀入l,r表示在l r之間種上的一種樹 k 2,讀入l,r表示詢問l r之間能見到多少種樹 l,r 0 ...