




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、高級(jí)數(shù)據(jù)結(jié)構(gòu),汪一寧 清華大學(xué),基本數(shù)據(jù)結(jié)構(gòu),易于實(shí)現(xiàn) 功能簡單,效率一般 優(yōu)先考慮使用簡單數(shù)據(jù)結(jié)構(gòu)來完成一道試題。,星際爭霸 (經(jīng)典試題),給出一個(gè)無向圖,有N個(gè)點(diǎn)M條邊,N, M = 100,000 支持兩種操作 刪除圖中的一條邊 詢問兩個(gè)頂點(diǎn)是否可達(dá) 操作總數(shù)=100,000,知識(shí)準(zhǔn)備:并查集,維護(hù)分離集合的合并與查詢 時(shí)間復(fù)雜度 合并和查詢兩個(gè)集合:O(alpha(n) 注意事項(xiàng) 按秩合并 路徑壓縮,解題思路,并查集并不支持分離集合的操作 解決方案:逆向思維!,1009 of Tianjin Online Contest, 2012,一個(gè)序列有一個(gè)左指針和一個(gè)右指針,要求維護(hù)以下操作
2、將某個(gè)指針向左或者向右移動(dòng) 在某個(gè)指針的左側(cè)或者右側(cè)插入一個(gè)元素 在某個(gè)指針的左側(cè)或者右側(cè)刪除一個(gè)元素 將兩個(gè)指針之間的元素反轉(zhuǎn),解題思路,使用最簡單的方法解決問題 思考:所有的操作都和兩個(gè)指針的位置相關(guān)。,合理使用STL庫,STL庫中的重要容器 Vector, Queue, Deque, Stack, Priority Queue Map, Set, Multimap, Multiset,線段樹,線段樹結(jié)構(gòu) 為區(qū)間1, n中的每個(gè)元素分配一個(gè)葉節(jié)點(diǎn) 針對(duì)相鄰的兩個(gè)節(jié)點(diǎn),產(chǎn)生一個(gè)上層節(jié)點(diǎn) 如此做直到某一層只有一個(gè)包含整個(gè)區(qū)間的節(jié)點(diǎn)為止。,線段樹:建樹過程,BuildTree(p, b, e):
3、 Create a new node N If b 1); N.right = BuildTree(p1)+1, e),線段樹:節(jié)點(diǎn)數(shù)據(jù)記錄,某一個(gè)節(jié)點(diǎn)代表一個(gè)區(qū)間(b, e)上的數(shù)據(jù)記錄。如果b=e,則這個(gè)點(diǎn)是葉子結(jié)點(diǎn);否則,這個(gè)點(diǎn)有且僅有兩個(gè)孩子。 節(jié)點(diǎn)數(shù)據(jù) 向上更新型,例如區(qū)間上所有元素的和,最小值,等等 向下更新型,例如該區(qū)間是否被反轉(zhuǎn),,線段樹:訪問機(jī)制,Visit(p, b, e): Update Downward If b = p.b and e = p.e: do the visit Else: If b = p.right.b: Visit(p1)+1, MAX(b, p.l
4、eft.b), e) Update Upward,線段樹:適用范圍,一個(gè)區(qū)間上的統(tǒng)計(jì)信息可以通過其兩個(gè)子區(qū)間上的信息合并得到。 對(duì)一個(gè)區(qū)間上所有元素的操作可以分解成對(duì)其兩個(gè)子區(qū)間上元素分別的操作。,回顧前述試題,修改 不允許插入或者刪除元素,但是可以修改任何一個(gè)位置的元素 可以將任何一段區(qū)間中的元素反轉(zhuǎn) 要求查詢?nèi)魏我欢螀^(qū)間中元素的和 思考 哪些數(shù)據(jù)需要“向上”維護(hù)? 哪些數(shù)據(jù)需要“向下”維護(hù)?,USACO hotel,有N間房間空著,M頭奶牛前來入住 每一頭奶牛希望訂到連續(xù)d間房間 如果沒有這樣的連續(xù)d間房間,這頭奶牛放棄入住 否則,分配編號(hào)最小的滿足條件的連續(xù)d間房間給這頭奶牛 N, M
5、= 50,000,解題思路,哪些向上更新的數(shù)據(jù)需要被維護(hù)? 區(qū)間中空閑房間總數(shù)? 哪些向下更新的數(shù)據(jù)需要被維護(hù)? 該區(qū)間是否全部被預(yù)訂 怎樣才能夠找出連續(xù)的d間空閑房間? 區(qū)間左端空閑房間數(shù) 區(qū)間右端空閑房間數(shù),彩球統(tǒng)計(jì) (原創(chuàng)),有N個(gè)彩球排成一列,每個(gè)球的顏色是1M中的一種。 有Q次詢問,每次詢問一個(gè)區(qū)間a,b中有多少種不同顏色的球 N, M, Q = 100,000,解題思路,線段樹能夠維護(hù)“區(qū)間中的顏色數(shù)目”這一數(shù)據(jù)么?,解題思路 (contd),離線詢問試題 將詢問區(qū)間按照左端點(diǎn)排序 只維護(hù)每種顏色的第一個(gè)球 先用鏈表把每一種顏色的球串起來。 隨著詢問區(qū)間向右移動(dòng),在鏈表上移動(dòng)指針。
6、 使用線段樹來回答詢問區(qū)間中有多少個(gè)每種顏色的第一個(gè)球,平衡樹,二叉搜索樹 一顆中序遍歷是升序的二叉樹 平衡二叉樹 采用某種機(jī)制控制二叉樹的高度 嚴(yán)格平衡:AVL, 紅黑樹,SBT 均攤平衡:Splay 期望平衡:Treap 關(guān)鍵操作旋轉(zhuǎn),Treap介紹,每個(gè)節(jié)點(diǎn)存儲(chǔ)一個(gè)隨機(jī)的“優(yōu)先值” 結(jié)構(gòu):鍵值構(gòu)成二叉搜索樹,優(yōu)先值構(gòu)成堆 優(yōu)勢(shì): 旋轉(zhuǎn)方式只有兩種,插入刪除簡單 劣勢(shì): 需要多維護(hù)一個(gè)數(shù)據(jù) 常數(shù)較其他平衡樹大,Splay介紹,核心思想:任何操作之后(或之前),將一個(gè)節(jié)點(diǎn)旋轉(zhuǎn)至根節(jié)點(diǎn)。 優(yōu)勢(shì): 思想簡單,容易掌握 可以實(shí)現(xiàn)一些特殊的統(tǒng)計(jì)功能 劣勢(shì): 4種旋轉(zhuǎn),略麻煩 僅保證均攤時(shí)間復(fù)雜度,一次操作可能耗時(shí)很長,樹結(jié)構(gòu)也可能很不好。,數(shù)列維
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西省商洛市2024-2025學(xué)年九上化學(xué)期末聯(lián)考模擬試題含解析
- 山西省朔州懷仁縣聯(lián)考2024年物理八上期末經(jīng)典試題含解析
- 低碳金融與氣候風(fēng)險(xiǎn)保險(xiǎn)產(chǎn)品設(shè)計(jì)趨勢(shì)預(yù)測
- 2025年考研政治理論時(shí)政熱點(diǎn)知識(shí)試題庫(含答案)
- 精準(zhǔn)設(shè)備管理的新動(dòng)力:AR設(shè)備點(diǎn)檢系統(tǒng)的應(yīng)用實(shí)踐與未來展望
- 醫(yī)療廢物處理技術(shù)革新:智能系統(tǒng)的成功案例分析
- 市政管網(wǎng)建設(shè)環(huán)境保護(hù)管理體系與措施
- 2025至2030中國自我美黑產(chǎn)品行業(yè)市場深度研究及發(fā)展前景投資可行性分析報(bào)告
- 2025至2030中國自動(dòng)物料搬運(yùn)行業(yè)市場深度研究及發(fā)展前景投資可行性分析報(bào)告
- 教育機(jī)器人教具行業(yè)現(xiàn)狀與發(fā)展策略
- 2025-2030年中國電鍍工業(yè)前景規(guī)劃及投資決策建議研究報(bào)告
- 小學(xué)生消防暑期安全
- 《海運(yùn)出口操作》課件
- 《四川省信息化項(xiàng)目費(fèi)用測算標(biāo)準(zhǔn)》
- 遼寧省沈陽市皇姑區(qū)岐山小學(xué)-2024-2025年第一學(xué)期班主任工作總結(jié)(勤于細(xì)微)【課件】
- DB33 1121-2016 民用建筑電動(dòng)汽車充電設(shè)施配置與設(shè)計(jì)規(guī)范
- 電信研發(fā)工程師L1認(rèn)證培訓(xùn)考試復(fù)習(xí)題庫(含答案)
- DB12T 1102-2021 郵政投遞服務(wù)規(guī)范
- 護(hù)理精益改善項(xiàng)目匯報(bào)
- 辦公樓消防系統(tǒng)維修保養(yǎng)方案及實(shí)施
- 2024年辦公室水電管理制度樣本(4篇)
評(píng)論
0/150
提交評(píng)論