




已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
圖論及相關競賽題講解,圖的數(shù)據(jù)結構,圖G=(V, E) 點集V 邊集E,邊(u, v) 權集W,邊(u,v)有權w 鄰接矩陣表示 鄰接表表示,圖的數(shù)據(jù)結構,鄰接矩陣 鄰接表,圖的遍歷,可以用DFS或BFS 根據(jù)具體情況選擇合適的方法,最短路徑,Dijkstra算法: 設G=是個賦權圖。求一結點a到其他結點x的最短路徑長度。步驟: (1)把V分成兩個子集S和T。初始時,S=a,T=V-S。 (2)對T中每一元素t計算D(t),根據(jù)D(t)值找出T中距a最短的一結點x,寫出a到x的最短路徑長度D(x)。 (3)置S為Sx,置T為T-x,若T=,則停止,否則再重復2 算法是基于“最短路徑的任一段子路徑都是最短路徑”這一事實,Dijkstra算法實例,Invitation Cards (zju2008 / pku1511),已知各站點間的乘車花費。要從站點1乘車到各站點,然后從各站點乘車返回1。計算一下最小總花費。(1站點個數(shù)1000000),輸入: 2 2 2 1 2 13 2 1 33 4 6 1 2 10 2 1 60 1 3 20 3 4 10 2 4 5 4 1 50,輸出: 46 210,最短路徑,Floyd算法: 定義一個nn的方陣序列A0,A1,A2,An,其中Aki-1j-1表示從vi到vj允許k個頂點v0, v1,vk-1為中間頂點的最短路徑長度(0kn),并且A0等于圖的鄰接矩陣。A0ij表示從vi到vj不經過任何中間頂點的最短路徑長度。Anij就是從vi到vj的最短路徑長度。 A0ij=arcsij 0in-1, 0jn-1 Akij=minAk-1ij,Ak-1ik-1+Ak-1k-1j 1kn,加入第k個頂點vk-1為中間頂點。,Floyd算法,for(k=0;kdik+dkj) dij=dik+dkj; ( dij=Min(dij, dik+dkj) ),Stockbroker Grapevine (zju1082),股票經紀人對謠言的過分反應是周知的。你受雇找一種在股市中散布謠言的方法,使之以最快的速度傳播出去。 你必須把謠言先傳給一個最合適的人。,輸入: 3 2 2 4 3 5 2 1 2 3 6 2 1 2 2 2 5 3 4 4 2 8 5 3 1 5 8 4 1 6 4 10 2 7 5 2 0 2 2 5 1 5 0,輸出: 3 2 3 10,Frogger (zju 1942),湖中有一些石頭露出水面。青蛙Freddy蹲在其中一塊上面,他女朋友Fiona在另一塊上。Freddy想跳到Fiona那里。 Freddy可以在兩石頭間跳躍,有不同的路徑選擇;他希望找到一條路,路上跳躍的最大距離最小。 輸入這些石頭的坐標,輸出這個最小值。,歐拉回路,存在歐拉回路的條件: 無向圖:所有頂點的度數(shù)都是偶數(shù)。 有向圖:所有頂點的出度等于入度。 混合圖:想辦法把無向邊定向,使所有點出度等于入度。 輸出歐拉回路的方法:DFS,歐拉回路,混合圖中的處理: 無向邊隨意定向,生成一個有向圖,當有結點的出入度之差為奇數(shù),則不存在歐拉回路。 從一個出度大的點出發(fā),尋找一條路徑(路徑上的邊是原圖的無向邊) ,中止于出度小的點。然后對這條路徑逆向。 反復操作直到沒有出度大的點為止。,Necklace (uva 10054),一串項鏈的珠子有兩種顏色,串起來時要求相鄰顏色一樣。給了一些珠子,判斷是否能串起來。,輸入: 2 5 1 2 2 3 3 4 4 5 5 6 5 2 1 2 2 3 4 3 1 2 4,輸出: Case #1 some beads may be lost Case #2 2 1 1 3 3 4 4 2 2 2,Ouroboros Snake (uva 10040),圓環(huán)上分布著2n個0、1,按順序連續(xù)取n個,就能把0 2n-1個整數(shù)都取到。(0n22),Euler Circuit (uva 10735),在混合圖中判斷是否存在歐拉回路,存在則輸出之。,輸出: 1 3 4 2 5 6 5 4 1 No euler circuit exist,輸入: 2 6 8 1 3 U 1 4 U 2 4 U 2 5 D 3 4 D 4 5 U 5 6 D 5 6 U 4 4 1 2 D 1 4 D 2 3 U 3 4 U,哈密爾頓回路,直接用DFS搜索尋找。,最小生成樹,Prim算法 設G=(V,E)是無向圖,求它的最小生成樹T=(V,E)的Prim算法為: 從V中任取一結點放入V; 在所有的端點分別在(V-V)和V中的邊中,選一條權最小的加入E; 將邊E在(V-V)中的頂點從V中取出放入V; 重復步驟,直到V與V相等為止。,最小生成樹,構造下圖的最小生成樹,U=v0,U=v0,v2,U=v0,v2,v5,U=v0,v2,v5,v3,U=v0,v2,v5,v3,v1,U=v0,v2,v5,v3,v1,v4,Prim 算法數(shù)據(jù)結構,1,2,4,3,5,6,6,1,6,5,5,5,6,3,4,2,圖G,1,2,4,3,5,6,6,1,6,5,5,5,6,3,4,2,圖G,1,2,4,3,5,6,6,1,6,5,5,5,6,3,4,2,圖G,U,U,0 1 2 3 4 5,數(shù)組:lowcost 6 ,數(shù)組:lowcost 6 ,注意:lowcost 0 = 0 lowcost 表示最小距離,0 1 2 3 4 5,最小生成樹,Kruscal算法 把邊按權值遞減排序,按順序每次添加一條邊,如果產生回路則舍棄。當把所有點都連通起來,則得到最小生成樹。,Kruscal 算法的實例,實例的執(zhí)行過程,1,2,4,3,5,6,6,1,6,5,5,5,6,3,4,2,圖G,1、初始連通分量:1,2,3,4,5,6 2、反復執(zhí)行“添加”、“放棄”動作。條件:邊數(shù)不等于 n-1時 邊 動作 連通分量 (1,3) 添加 1,3,4,5,6,2 (4,6) 添加 1,3,4, 6,2,5 (2,5) 添加 1,3,4, 6,2,5 (3,6) 添加 1,3,4, 6,2,5 (1,4) 放棄 因構成回路 (3,4) 放棄 因構成回路 (2,3) 添加 1,3,4,5,6,2,算法實現(xiàn)要點: 用并查集的相關操作:實現(xiàn)集合的并;判斷新邊的兩端點是否處于同一集合,來確定是否構成回路。,最小代價生成樹,1,2,4,3,5,6,1,5,3,4,2,5,5,Kruscal 算法數(shù)據(jù)結構,優(yōu)先隊列(把所有邊按長度遞增的順序保存在一個表里) 并查集,并查集 (Union-Find Sets),先把每一個對象看作是一個單元素集合,然后按一定順序將相關聯(lián)的元素所在的集合合并。能夠完成這種功能的集合就是并查集。 對于并查集來說,每個集合用一棵樹表示。 它支持以下操作: Unite (Root1, Root2) /并操作 Find (x) /搜索操作(搜索編號
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 IEC 60364-4-44:2024 EN Low-voltage electrical installations - Part 4-44: Protection for safety - Protection against voltage disturbances and electromagnetic disturbances
- 投資合作合同協(xié)議書
- 汽修場地租賃合同
- 代理記賬公司員工保密協(xié)議
- 可編輯修改產品代理合同經銷
- 個人裝修木工勞務合同
- 醫(yī)療行業(yè)人工智能輔助診斷與健康管理方案
- 天使投資協(xié)議書
- 電子商務產業(yè)園孵化企業(yè)入駐協(xié)議
- 建筑勞務臨時用工合同
- 中職歷史教學計劃
- 六年級美術下冊全冊教案(浙美版)
- 湘教版二年級下冊美術教案
- 男生青春期生理教育
- 現(xiàn)代漢語(黃伯榮、廖序東版)課件-第四章語法課件
- 統(tǒng)編版小學語文五年級下冊第四單元解讀與大單元設計思路
- 壓瘡護理質控反饋
- 山東春季高考Photoshop考試復習題庫(含答案)
- 湖南省長沙市2023-2024學年八年級下學期入學考試英語試卷(附答案)
- 2023-2024年人教版八年級上冊數(shù)學期末模擬試卷(含答案)
- 數(shù)據(jù)采集管理制度范文
評論
0/150
提交評論