Book 樹狀陣列 小結

2022-05-07 06:03:06 字數 513 閱讀 9758

差不多花了10天學樹狀陣列,是照著這篇部落格做的題目,還差幾道----------

1.幾個注意的地方

1)lowbit(0) + 0 會無限迴圈,會導致tle掉,給輸入進去的x++一下就好

2)當給的x的範圍很大的時候,注意要離散化

2.然後就是兩個基本的操作

1) add()

2) sum()

3.複雜度是log (n)

4.現在做到的題目有這些

1)  單點更新,區間求和,(區間求和有一維的,有二維的)

2)  區間更新,單點查詢 ,(詳見那篇**,可以推廣到n維的情況)

3)  求乙個數前面有多少個數比它小,這種可以用來求逆序對,或者加一些限制的條件來求一些東西

5. 還有乙個是初始化

如果最開始的每個點1的值是1的話,c陣列可以初始化為c[i][j] = lowbit(i) * lowbit(j)

或者兩重迴圈add(i,j,1)

大概就是這麼多,之後再做到題目再總結~~~~    

樹狀陣列小結

最普通的樹狀陣列 實現用low bi tlowbit lowbit 的優秀性質 原理很簡單 pragma gcc optimize o3 pragma g optimize o3 include include include define maxn 500005 define ll long lo...

樹狀陣列學習小結

樹狀陣列,又稱二進位制索引樹,英文名binary indexed tree。一 樹狀陣列的用途 主要用來求解數列的字首和,a 0 a 1 a n 由此引申出三模擬較常見問題 1 單點更新,區間求值。hdu1166 2 區間更新,單點求值。hdu1556 3 求逆序對。hdu2838 二 樹狀陣列的表...

樹狀陣列小結(未完待續)

最近剛剛深入到了樹狀陣列是什麼,上年寒假學過,但是當時完全聽不到,最近兩天沉下心來,好好看了下,終於懂這個原理是什麼,感覺並不是很難,而且很好用。這個圖應該更好理解 d 1 a 1 d 2 a 1 a 2 d 3 a 3 d 4 a 1 a 2 a 3 a 4 依次類推,6管著5和6 8管著前8項,...