樹狀數組簡述
樹狀數組是一種單點修改並查詢前綴和的數據結構
查詢和修改時間復雜度都是log(n)
對於樹狀數組我們首先需要知道lowbit的概念
lowbit即是x & -x
通俗點是一個數二進制下的從後往前數第一個1所對應的值
具體算法的話就是兩個
一個是修改函數如下
void add(int pos, int w)
{
while(pos <= n)
{
c[pos]+=w;
pos+=lowbit(pos);
}
}
一個是查詢如下
int sum(int pos)
{
int ret = 0;
while (pos > 0)
{
ret+=c[pos];
pos-=lowbit(pos);
}
return ret;
}
很好寫也易於理解
我第一次自己寫的時候初始賦值錯了導致初始化復雜度過大
可以初始賦值的時候就使用add( i , a[i] )
樹狀數組簡述
相關推薦
樹狀數組簡述
turn 簡述 樹狀數組 pos 一次 oid mage mil add 樹狀數組是一種單點修改並查詢前綴和的數據結構 查詢和修改時間復雜度都是log(n) 對於樹狀數組我們首先需要知道lowbit的概念 lowbit即是x & -x 通俗點是一個數二進制下的從後往
【bzoj3289】Mato的文件管理 離散化+莫隊算法+樹狀數組
逆序對 sample 單位 oid 逆序 cmp family += efi 原文地址:http://www.cnblogs.com/GXZlegend/p/6805224.html 題目描述 Mato同學從各路神犇以各種方式(你們懂的)收集了許多資料,這些資料一共有n份
SCU - 4441 Necklace(樹狀數組求最長上升子數列)
arranged art 樹狀 max pri nsis names for each cnblogs Necklace frog has \(n\) gems arranged in a cycle, whose beautifulness are \(a_1, a_2,
【BZOJ1935/4822】[Shoi2007]Tree 園丁的煩惱/[Cqoi2017]老C的任務 樹狀數組
tchar get ont n+1 div 區域 spa 都是 struct 題意:兩道題差不多,都是給你一堆平面上的點,每個點有權值,然後m次詢問求某一矩形區域內的點權和 題解:先離散化,然後將詢問拆成左右兩條線段,然後將點和這些線段一起按x坐標排序,在y軸上維護樹狀數
POJ 2299 Ultra-QuickSort(樹狀數組+離散化)
計算 htm upd ace stream max arc clas 下標 http://poj.org/problem?id=2299 題意:給出一組數,求逆序對。 思路: 這道題可以用樹狀數組解決,但是在此之前,需要對數據進行一下預處理。 這道題目的數據可
hdu (1556 樹狀數組)
blank ... ons ted spa 依次 u+ code include 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 Color the ball Time Limit: 9000/3000 MS (
[SPOJ DQUERY] D-query(樹狀數組,離線)
vector scan con oid n) fin %d ear span 題目鏈接:https://vjudge.net/problem/SPOJ-DQUERY 題意:給定數列,q次詢問,問區間內不同數字的個數。 可以用主席樹,但是還有更好寫的辦法。 離線存下所有的詢問
[BZOJ1264][AHOI2006]基因匹配Match(DP + 樹狀數組)
return scanf namespace onclick ring splay urn ret int 傳送門 有點類似LCS,可以把 a[i] 在 b 串中的位置用一個鏈式前向星串起來,由於鏈式前向星是從後往前遍歷,所以可以直接搞。 狀態轉移方程 f[i]
【轉】關於LIS和一類可以用樹狀數組優化的DP 預備知識
免費 關註 最長上升子序列 2.3 bzoj1264 一個數 long 個數字 等於 原文鏈接 http://www.cnblogs.com/liu-runda/p/6193690.html 預備知識 DP(Dynamic Programming)
火柴排隊(NOIP2013)(附樹狀數組專題講解(其實只是粗略。。。))
blog 規律 混亂 ace urn ets gets value update 原題傳送門。。(9018上不去。明天再來搞。) 首先,這道題目是一道神奇的題。 看到這道題,第一眼就覺得2個數組排個序,然後一一對應的時候一定差值最小。 由於我們可以將這2個數列同時進行調換。
ZOJ-2386 Ultra-QuickSort 【樹狀數組求逆序數+離散化】
bool 個數 lock ascend nat 前綴和 ron determine inf Description In this problem, you have to analyze a particular sorting algorithm. The algor
[CF808B] Average Sleep Time([強行]樹狀數組,數學)
printf set urn pac int typedef open .com class 題目鏈接:http://codeforces.com/contest/808/problem/B 題意:n個數,求其中每k個數的和的平均值。 鬼知道我怎麽會石樂誌上來就用了樹狀數組
Codeforces Round #365 (Div. 2) D - Mishka and Interesting sum(離線樹狀數組)
turn string 之前 algorithm printf ace r++ void contest http://codeforces.com/contest/703/problem/D 題意: 給出一行數,有m次查詢,每次查詢輸出區間內出現次數為偶數次的數字的異
樹狀數組
sum pid color 數組 ret pre spa class void c為樹狀數組,c[i]存儲i-lowbit[i]+1到i的數組的值 c[x+ lowbit(x)]為c[x]的父親節點 http://cogs.pro/cogs/problem/prob
[BZOJ 3211]花神遊歷各國(並查集+樹狀數組)
image fin 不為 names src scrip 樹狀數組 add bsp Description Solution 樹狀數組單點修改區間查詢 我們知道一個數n最多修改loglogn次就會變為1 並查集維護每個數右邊第一個不為1的位置 #inclu
[BZOJ 4418][Shoi2013]扇形面積並(樹狀數組+二分)
continue define getchar getc amp -1 n) long sin Description 給定N個同心的扇形,求有多少面積,被至少K個扇形所覆蓋。 Solution 打開發現是計算幾何還以為是看錯題號了QwQ 其實就是遇到一條開始的邊+
樹狀數組的進階運用(Stars 數星星)
p s 計算 right star http 復雜 一個 examine maps 英文原題 Problem Description Astronomers often examine star maps where stars are represented by poi
(樹狀數組+離線查詢)HDU 4417 - Super Mario
blog 數組 string 個數 r++ dex 分塊 每次 class 題意: 給定一個數列,最多10萬次查詢l到r不超過h的數字的個數。 分析: 唉,太菜啦。 在線做法應該比較明顯,區間維護平衡樹,用線段樹套平衡樹,或者分塊套平衡樹,應該都能A,但是沒試
[luogu U8984][新創無際夏日公開賽] 冰精凍西瓜 [樹狀數組]
def 輸出 png namespace name using string back 註意 題目背景 盛夏,冰之妖精琪露諾發現了一大片西瓜地,終於可以吃到美味的凍西瓜啦。 題目描述 琪露諾是擁有操縱冷氣程度的能力的妖精,一天她發現了一片西瓜地。這裏有n個西瓜,由
POJ1195 Mobile phones 【二維樹狀數組】
chan mono ins written writing ram cor data- amp Mobile phones Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 1428