日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

割点和桥

發布時間:2025/6/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 割点和桥 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/* *定義 * 割點:如果在圖G中刪去一個結點u后,圖G的連通分枝數增加,即W(G-u)>W(G),則稱結點u為G的割點,又稱關節點; * 橋:如果在圖G中刪去一條邊e后,圖G的連通分支數增加,即W(G-e)>W(G),則稱邊u為G的橋,又稱割邊或關節邊; * 雙連通分支:G中不含割點的極大連通子圖稱為G的雙連通分支,又稱為G的塊; * * *DFS * 描述: * 在對于任選一個圖中結點為根的DFS搜索樹中建立一個LAB數組與LOW數組; * LAB數組存儲個結點的編號,LOW數組存儲各點及其子樹的各結點能到達的最小編號結點的編號; * * DFS(u) //lab為一個全局變量,初始為1,LAB數組各項初始為0; * LAB[u] = LOW[u] = lab++ //1 * for each (u, v) in E(G) //2 * if LAB[v] is 0 //3 * DFS(v) //4 * LOW[u] = min{LOW[u], LOW[v]} //5 * else if v isnot parent of u //6 * LOW[u] = min{LOW[u], LAB[v]} //7 * 第3行中,如果(u,v)是樹邊,則對v做深度優先搜索,并且LOW[u]=min{LOW[u],LOW[v]}; * 如果(u,v)是反向邊,則LOW[u]=min{LOW[u],LAB[v]}; * * *割點 * 描述: * 當一個結點u是割點時必滿足以下兩個條件之一: * 1)u為根且至少有兩棵子樹; * 2)u不為根且存在一個u在深搜樹中的子女v使得LOW[v]≥LAB[u]; * * *橋 * 描述: * 一條邊e=(u,v)是橋,當且僅當e為樹枝邊且LOW[v]>LAB[u]; * **/

總結

以上是生活随笔為你收集整理的割点和桥的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。