1. 程式人生 > >樹狀數組模板

樹狀數組模板

query sum bit pac mark right 百度一 cnblogs 內存

  • 樹狀數組是一個查詢和修改復雜度都為 \(log\left(n\right)\) 的數據結構

  • 所有樹狀數組能夠完成的線段樹都能夠完成,而線段樹能夠完成的樹狀數組

  • - 那麽既然線段樹能夠完成所有樹狀數組能夠完成的,樹狀數組有什麽用呢?

  • - 因為樹狀數組簡潔,內存小,常數小

可以先百度一下樹狀數組了解樹狀數組

  • 單點修改,區間查詢

    #include <cstdio>
    using namespace std;
    void Update(int i,int x){
    while (i<=MAX_TREE_SIZE) tr[i]+=x,i+=lowbit(i);
    }
    int Query(int
    i){ int sum=0; while (i!=0) sum=sum+tr[i],i-=lowbit(i); return sum; }

樹狀數組模板