2024年暑假關於線段樹和樹狀陣列的小知識點

听纸眠發表於2024-08-03

1.線段樹的樹形結構使得儲存其的陣列應開4N,其中N為元素個數

2.多用宏定義使程式碼更簡單

3.樹狀陣列求逆序對一般會寫成add(a[i],1);quiry(a[i] - 1);這會導致當元素值域包含0時傳入-1導致死迴圈,可以在quiry函式判斷合法性;一種比較好的寫法是乾脆add時add(a[i] + 1, 1),然後直接查詢quiry(a[i]),相當於整體區間後移一位不會產生影響,一般我們開陣列時會習慣開大一點,比如我喜歡+3(3是我的幸運數字),大部分似乎是+10,一般喜歡卡到填滿陣列的同學很少(建議改了)

4.對於一些狀態表示位運算是一個不錯的選擇,比較典型的是狀壓dp,但不應侷限於此

忽見陌頭楊柳色,悔教夫婿覓封侯

相關文章