青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

雁過無痕

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::

樹狀數組(Fenwick tree,又名binary indexed tree),是一種很實用的數據結構。它通過用節點i,記錄數組下標在[ i –2^k + 1, i]這段區間的所有數的信息(其中,ki的二進制表示中末尾0的個數,設lowbit(i) = 2^k),實現在O(lg n) 時間內對數組數據的查找和更新。

樹狀數組的傳統解釋圖,不能很直觀的看出其所能進行的更新和查詢操作。其最主要的操作函數lowbit(k)與數的二進制表示相關,本質上仍是一種二分。因而可以通過二叉樹,對其進行分析。事實上,從二叉樹圖,我們對它所能進行的操作和不能進行的操作一目了然。

和前面提到的點樹類似,先畫一棵二叉樹,然后對節點中序遍歷(點樹是采用廣度優先),每個節點仍然只記錄左子樹信息,見圖:

 

 

由于采用的是中序遍歷,從節點1到節點k時,剛好有k個葉子被統計。

可以證明:

  葉子k,一定在節點k子樹下。

  以節點k為根的樹,其子樹共有葉子lowbit(k)

節點k的父節點是:k + lowbit(k) k - lowbit(k) 

節點k + lowbit(k) 是節點k的最近父節點,且節點k在它的子樹下。

節點k - lowbit(k) 是節點k的最近父節點,且節點k在它的子樹下。

節點k,統計的葉子范圍為:(k - lowbit(k),  k]

節點k的左孩子是:k - lowbit(k) / 2

 

下面分析樹狀數組兩面主要應用:

1 更新數據x,進行區間查詢。

2 更新區間,查詢某個數。

由于,樹狀數組只統計了左子樹的信息,因而只能查詢更新區間[1, x]。只在在滿足[x,y]的信息可以由[1,x-1][1,y]的信息推導出時,才能進行區間[x,y]的查詢更新。這也是樹狀數組不能用于任意區間求最值的根本原因。

 

先定義兩個集合:

up_right(k) 節點k所有的父節點,且節點k在它們的子樹下。

up_left(k)   節點k所有的父節點,且節點k在它們的子樹下。

 

1  更新數據x,查詢區間[1,y]

顯然,更新葉子x,要找出葉子x在哪些節點的子樹下。因而節點k、所有的up_right(k)

都要更新。

查詢[1, y],實際上就是把該區間拆分成一系列小區間,并找出統計這些區間的節點。可以通過找出y在哪些節點的子樹下,這些節點恰好不重復的統計了區間[1, y-1]。因而要訪問節點y、所有的up_left(y)

 

2 更新區間[1,y],查詢數據x

  這和前面的操作恰好相反。與前面的最大不同之處在于:節點保存的不再是其葉子總個數這些信息,而是該區間的所有葉子都改變了多少。也就是說:每個葉子的信息,分散到了所有對它統計的節點上。因此操作和前面相似:

  更新[1,y]時,更新節點y、所有up_left(y)

  查詢x時,  訪問x、所有up_right(x)

 

前面的樹狀數組,只對左子樹信息進行統計,如果從后往前讀數據初始化樹狀數組,則變成只對右子樹信息進行統計,這時更新和查詢操作,剛好和前面的相反。

 

一般情況下,樹狀數組比點樹省空間,對區間[1, M]只要M+1空間,查詢更新時定位節點比較快,定位父節點和左右孩子相對麻煩點(不過,一般也不用到。從上往下查找,可參考下面代碼中的erease_nth函數(刪除第n小的數))。

 

下面是使用樹狀數組的實現代碼(求逆序數和模擬約瑟夫環問題):


樹狀數組





作者: flyinghearts
出處: http://www.cnblogs.com/flyinghearts/
本文采用知識共享署名-非商業性使用-相同方式共享 2.5 中國大陸許可協議進行許可,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


posted on 2011-04-11 23:54 flyinghearts 閱讀(1944) 評論(0)  編輯 收藏 引用 所屬分類: 算法
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品久久久久久一区二区| 亚洲免费不卡| 美女尤物久久精品| 亚洲综合二区| 99国产精品私拍| 亚洲国产婷婷综合在线精品| 一区在线免费| 亚洲福利视频在线| 亚洲国产乱码最新视频| 久久精彩免费视频| 久久久精品性| 欧美福利网址| 亚洲国产欧美在线| 亚洲精品视频二区| 亚洲网站视频福利| 99精品国产99久久久久久福利| 欧美在线亚洲一区| 女同性一区二区三区人了人一 | 欧美日韩亚洲一区二区三区在线| 欧美日韩国产色综合一二三四 | 亚洲免费在线视频| 久久精品30| 亚洲欧洲av一区二区| 久久久久91| 欧美精品免费在线观看| 欧美日韩在线免费视频| 亚洲午夜高清视频| 亚洲神马久久| 久久精品国产v日韩v亚洲| 亚洲女人天堂av| 欧美激情aaaa| 国产精品影音先锋| 亚洲高清一二三区| 亚洲国产另类 国产精品国产免费| 老司机免费视频一区二区| 欧美日韩在线视频观看| 午夜视频在线观看一区二区| 亚洲激情婷婷| 欧美在线啊v| 欧美激情性爽国产精品17p| 亚洲伦理在线| 久久噜噜噜精品国产亚洲综合| 亚洲精品影院| 久久精品中文| 国产日韩综合| 久久一区二区精品| 欧美丝袜一区二区三区| 亚洲欧美国产日韩中文字幕| 久久国产精品99国产精| 国产精品免费看久久久香蕉| 在线看国产一区| 欧美在线啊v一区| 夜色激情一区二区| 欧美大片国产精品| 欧美激情在线播放| 欧美亚洲一级片| 在线亚洲成人| 欧美精品aa| 久久久九九九九| 欧美人与性动交a欧美精品| 亚洲高清免费视频| 99热这里只有成人精品国产| 黄色精品一区二区| 久久久久久久久伊人| 免费日韩av片| 亚洲韩国一区二区三区| 亚洲视频一二| 亚洲三级免费电影| 亚洲国产精品一区制服丝袜| 国产精品欧美一区二区三区奶水| 亚洲午夜电影| 欧美1区2区3区| 久久国产一区二区三区| 欧美日韩一区二区三区在线视频| 久久久久久久网站| 国产精品网站在线播放| 日韩午夜av在线| 亚洲人久久久| 99精品视频免费观看| 久久尤物电影视频在线观看| 亚洲欧美日韩精品久久奇米色影视 | 伊人一区二区三区久久精品| 欧美日韩中字| 免费不卡在线视频| 国产午夜精品理论片a级大结局| 亚洲精品免费电影| 亚洲人午夜精品免费| 久久久一二三| 亚洲卡通欧美制服中文| 久久九九全国免费精品观看| 欧美资源在线观看| 国产乱码精品1区2区3区| 中文精品视频一区二区在线观看| 一区二区三区精品视频| 午夜精品久久久久久久蜜桃app| 日韩一级片网址| 欧美激情在线| 一本到高清视频免费精品| 夜夜爽99久久国产综合精品女不卡| 99精品国产在热久久| 一区二区三区四区在线| 欧美经典一区二区三区| 最新国产拍偷乱拍精品| 一区二区欧美日韩| 欧美日韩免费观看中文| 日韩一级在线观看| 欧美日韩亚洲系列| 日韩视频免费观看| 日韩网站在线观看| 欧美午夜大胆人体| 免费不卡视频| 91久久久久久国产精品| 欧美精品videossex性护士| 亚洲毛片在线看| 亚洲一区二区三区在线播放| 国产欧美欧洲在线观看| 欧美国产一区二区在线观看| 国产精品国产三级国产普通话99| 久久久97精品| 亚洲电影免费观看高清完整版| 欧美成人免费网站| 久久综合给合| 欧美视频一二三区| 99精品视频免费全部在线| 欧美一区二区三区免费视频| 一区二区视频免费完整版观看| 免费不卡欧美自拍视频| 久久精品中文字幕一区| 亚洲国产日日夜夜| 欧美天堂亚洲电影院在线播放| 亚洲欧美日韩成人高清在线一区| 久久亚洲影院| 一本色道久久加勒比精品| 国产欧美一区二区白浆黑人| 久久天堂国产精品| 一个色综合av| 9l国产精品久久久久麻豆| 国产精品多人| 久热精品视频在线| 亚洲午夜精品久久久久久app| 麻豆av一区二区三区久久| 韩国女主播一区二区三区| 欧美激情综合网| 久久都是精品| 亚洲一区制服诱惑| 亚洲欧美一区二区三区在线| 尹人成人综合网| 欧美丝袜一区二区三区| 另类激情亚洲| 午夜精品在线看| 一区二区三区免费看| 久久美女性网| 在线午夜精品| 亚洲国产乱码最新视频| 国产欧美 在线欧美| 欧美日韩爆操| 欧美成人黑人xx视频免费观看| 欧美一级午夜免费电影| 久久久久久久国产| 亚洲一区日韩在线| 亚洲精品欧洲精品| 欲色影视综合吧| 国产欧美婷婷中文| 国产精品日韩欧美一区二区三区 | 久久精品国产久精国产爱| 亚洲午夜一级| 夜夜嗨av一区二区三区四季av | 久久se精品一区精品二区| 一本色道久久综合亚洲精品不 | 欧美 日韩 国产 一区| 久久精品国产999大香线蕉| 亚洲一区欧美二区| 亚洲免费高清| 亚洲精品一区二区三区蜜桃久| 亚洲福利久久| 日韩视频在线一区| 亚洲国产成人在线播放| 精品51国产黑色丝袜高跟鞋| 国产欧美日韩亚洲精品| 国产美女诱惑一区二区| 国产精品一区二区在线观看| 国产精品乱码人人做人人爱| 国产精品久久9| 国产精品每日更新在线播放网址| 国产精品麻豆va在线播放| 国产精品欧美日韩久久| 国产情人综合久久777777| 国产日韩精品久久久| 国产香蕉久久精品综合网| 国产亚洲精品久久久久久| 蜜臀91精品一区二区三区| 久久久之久亚州精品露出| 久久香蕉国产线看观看网| 久久一区二区三区国产精品| 欧美xx69| 欧美日韩在线视频一区| 国产精品久久久久久福利一牛影视| 国产精品久久久一区麻豆最新章节 | 久久久精品午夜少妇| 蜜桃av一区|