HDU 1166 mea的樹狀陣列

2021-09-22 12:34:08 字數 1178 閱讀 6001

2023年,虛擬偶像大火,hololive公司旗下有n個虛擬主播,這些主播的粉絲全部都是單推,並且這些主播都被從1到n排好序了

我們知道粉絲數是會變化的,有一天mea問你,從x號vtuber 到 y號vtuber到底有多少單推啊? 當然 x 和 y 都是從 1到 n的數

你馬上去每個人的youtube上去查詢到底多少粉絲,然後告訴了mea。

mea一看你是乙個好欺負的舔狗,於是等了一會粉絲發生變化了之後,又讓你去數。於是你又數了一遍。

後來粉絲數又發生了變化,mea又換了各區間讓你數一遍。。。。

於是你終於快要崩潰了,但是你又想稱為乙隻合格的天狗。這時候mea說:讓你不好好學習程式設計。但是現在也來不及了,於是天狗桑找到了聰明的你,你能更easy的解決區間查詢和單點修改的問題嗎?

給出n個虛擬主播的粉絲數。並且每次每個主播粉絲的變化都會給到你,以及mea每次給你的命令。輸出mea想要的結果。

sample input

1

101 2 3 4 5 6 7 8 9 10

query 1 3

add 3 6

query 2 7

sub 10 2

add 6 3

query 3 10

end

sample output

case 1:633

59

樹狀陣列就是做區間查詢用的,真的很快,理解的話,好好看看

就足夠了。我都是直接粘的這個部落格的這幾部分,基本都不需要改動。

#include#include#includeusing namespace std;

const int maxn = 50005;

int n,tree[maxn];

void init()

}int lowbit(int t)

int getsum(int x)

void add(int x, int y)

int main()

string s;

printf("case %d:\n",ca);

while(cin>>s)

else if(s[0] == 'q')

else if(s[0] == 'a')

else if(s[0] == 's')}}

return 0;

}

樹狀陣列 HDU1166

繼續上次那題,我們現在採用樹狀陣列來解。樹狀陣列主要用來進行區間求和統計和定點更新操作,樹狀陣列的儲存是如下方式的 假設陣列a為a 1 a 2 a 3 a n 現在我們另陣列c 1 a 1 c 2 a 1 a 2 c 3 a 3 c 4 a 1 a 2 a 3 a 4 這是啥結構呢?其實c i a ...

樹狀陣列 HDU1166

題意為 t組測試陣列,跟著乙個整數n,n n 50000 表示n個營地 n後面跟著n個數ai 1 50 表示每個營地人數。然後輸入三種操作 最多有40000條操作 1.add x y x營地增加y人。2.query x y 查詢x y營地的總人數。3.sub x y x營地減少y人。end 結束。如...

Hdu1166 樹狀陣列

problem description c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的...