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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

图论部分简单总结

發布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图论部分简单总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

總的感受:

這里大概囊括了一下圖論的基礎知識,圖論是一個比較考驗思維的部分。

尤其是后面有關二分圖,網絡流等的分支,對建模轉化的要求還是很高的。

進入正題了:

一、最短路:

這一個部分不想多講,雖然是很基礎的一個部分,但是也很重要。

題目:

1、Telephone Lines。p.s:二分答案+最短路。

2、Roads and Planes。p.s:Topo序+dijkstra。

3、Cow Relays。p.s:Floyd+矩陣乘法。

三連擊

二、最小生成樹:

基礎算法的話也不多講了。主要是其實有些這種類型的題也很考驗思維。。。

題目:

1、picnic planning。 p.s:最小生成樹+枚舉。

三、樹的直徑與LCA:

樹的直徑求法: ① 樹形DP。 ②兩遍BFS/DFS。

LCA的求法: ①樹上倍增。 ②Tarjan+并查集(離線)。

這一類型的題目,一般需要能夠發現隱藏在題目中的一些優秀的性質,然后和這些東西掛上聯系,然后就很舒服了(有前提的略略略)。

題目:

1、APIO2010巡邏 p.s:分類討論+樹的直徑。 題解傳送門

2、NOIP2007樹網的核 p.s:分析性質+樹的直徑。 題解傳送門

3、POJ3417Network p.s:問題轉化+樹上差分。 題解傳送門

4、SDOI2015尋寶游戲 p.s:dfs序+set(虛樹??!!)題解傳送門

5、嚴格次小生成樹 p.s:最小生成樹+樹上倍增。題解傳送門

6、NOIP2012疫情控制 p.s:二分答案+貪心+樹上倍增。題解傳送門

四、基環樹

一般用來作為樹問題的擴展。。解決基環樹問題常用思路:一般先考慮樹,然后掛上一條邊后產生的影響(和沒說一樣)。。。

1、IOI2008Island p.s:基環樹直徑。題解傳送門

五、負環與差分約束系統

負環的判定spfa不多聊。

講下差分約束系統:

這是一種特殊的N元不等式組,它的N個變量a1...aN,滿足一些形如下的約束:

ai-aj<=bkai==ajai-aj>=bk...

然后需要解決的問題就是求一組解使得上述約束全部滿足。

可以發現上述的式子和最短路需要滿足的三角形不等式:dis[y]<=dis[x]+ver(x,y)十分相似。

那么我們可以考慮到把這些約束看作是兩兩變量之間的邊,相對應的跑最短(長)路即可。

具體一點,

對于形如:ai-aj<=ck的式子,我們可以轉換成ai<=aj+ck。

那么就相當于向j往i連了一條長為ck的邊,那么對應的跑最短路即可。特殊的:如果存在負環無解

而對于形如:ai-aj>=ck的式子,就轉換成ai>=aj+ck,可以發現只需將最短路改成最長路即可。

題目:

咕咕咕。。。

六、Tarjan與圖的連通性

無向圖橋(割邊)判定:

low[y]>dfn[x];

無向圖割點判定:

low[y]>=dfn[x]; //需要注意的是需要判斷根節點的特殊情況...

無向圖邊雙連通分量(e-DCC)求法:

把所有的橋去掉后得到的所有的連通塊都是一個e-DCC。

無向圖點雙連通分量(v-DCC)求法:

把所有的割點去掉后得到的所有的連通塊都是一個v-DCC???。

并不是。。。一定不能亂來啊233

事實上可以發現一個割點可能出現在多個v-DCC中。

這個時候就按照割點判斷法則來,把用一個棧維護起來的點一個個彈出,他們組成一個v-DCC。同時,需要把割點的標記清空,因為后續它還有可能出現在別的v-DCC中。

e-DCC的縮點比較常規,需要注意的是v-DCC的縮點,新的圖應該包括了每一個v-DCC和每一個割點。

有向圖強連通分量(SCC)的求法:對于每一個點,若存在:

low[x]==dfn[x];

那么把棧中維護的元素彈到x為止。

SCC的縮點也比較常規。

有向圖的必經點和必經邊。

注意:此處不考慮有環的情況。對于有環的情況請自行了解支配樹。

既然沒有環,可以直接正反兩次進行Topo排序。

記錄到x路徑條數,不妨設從S到x路徑條數為f[x],從x到T路徑條數為t[x]。

① 如果對于一條有向邊(x,y)。如果滿足:

f[x]*t[y]==f[T];

則此邊為必經邊。

② 如果對一個點x。如果滿足:

f[x]*t[x]==f[T];

則此點為必經點。

題目:

1、POI2008BLO p.s:割點。題解傳送門

2、Knights of the Round Table p.s:點雙連通分量+奇環。題解傳送門

七、2-SAT問題

對于N個變量,每個變量只有兩種取值。然后有M個條件,每個條件是關于兩個變量取值的限制。

問能否找到一組合法的賦值方案使得M個條件都滿足。

判定是否合法的方法:

首先,對這N個點建一張2N個點的圖,i和i+N對應的點i的兩個取值。

然后,根據每一個條件連有向邊,(一般需要轉一下思維)。

最后,tarjan縮強連通分量,如果任意一個SCC內存在i,i+N,那么就不合法。否則合法。

求一組合法賦值方案的方法:

這是個人理解:由于選擇一個零出度點,不會對其他點造成影響。

所以:

1、我們可以建反圖Topo序,相當于在原圖自底向上進行Topo。

每遇到一個沒有確定賦值的點,就給它和它對應的點賦值。

2、由于我們發現tarjan縮點得到的每一個SCC的順序正好是自底向上的,所以我們可以直接賦值。

val[i]=c[i]>c[opp[i]];//c是強連通分量編號...//i代表xi,0,opp[i]代表xi,1...

八、二分圖和網絡流

定義:一張沒有奇環的無向圖是二分圖。

二分圖判定方法:dfs染色。若存在相鄰兩個點,他們的顏色相同,那么就存在奇環。

最大匹配求法:① 匈牙利算法 ② 網絡流。

完備匹配:一張圖具有完備匹配,當且僅當兩邊的點都為N個,且最大匹配為N。

多重匹配:在最大匹配的基礎上,點可以連不超過一特定限制數量的另一側的點。

最大帶權匹配:邊有邊權,在最大匹配的前提下,使權值和最大。

最大帶權匹配求法:① KM算法 ② 費用流。

需要注意的是:KM算法僅僅適用于二分圖具有完備匹配,所以一般都是費用流。

二分圖最小點覆蓋:等于最大匹配數。

簡略證明一下:

首先,由于每條匹配邊都肯定需要至少取一個端點,所以不可能小于最大匹配數。因此只需要給出一組構造,使得點數等于最大匹配數即可。構造如下:首先,先求出二分圖最大匹配。然后,對于每一個左部非匹配點在進行一次尋找增廣路的過程,(必然失敗),同時進行訪問標記。最后,選出左部未訪問的節點和右部訪問了的節點,這些點構成一組點數為最大匹配數的最小點覆蓋。原因:左部的非匹配點顯然都被標記了,右部的非匹配點肯定沒被標記,一對匹配點要么同時被標記要么同時沒被標記。那么:1、匹配邊都被覆蓋了,因為恰好每條匹配邊只取了一個點。2、兩個端點都是非匹配點的情況不存在,與最大匹配矛盾。3、左部是非匹配點,右側是匹配點的非匹配邊被覆蓋了。4、右部是非匹配點,左側是匹配點的非匹配邊,左部點一定沒被訪問,所以也被覆蓋了。

證畢。

二分圖最大獨立集:等于總點數-最小覆蓋,即也等于總點數-最大匹配。

證略。

網絡流初步:

最大流:EK算法,dinic算法(當前弧優化)。

最小割:最小割等于最大流。

費用流:spfa-EK費用流。

題目:

1、Ants p.s:二分圖帶權最小匹配。題解傳送門

2、網絡流24題 No p.s...題解傳送門

最后的最后

蒟蒻的圖論部分就到此結束了,有些地方講的有點含糊不清,請多包容。

上述題解會很快跟上的。。。(希望別咕掉了@ο@)

The Real End

轉載于:https://www.cnblogs.com/Bhllx/p/10610275.html

總結

以上是生活随笔為你收集整理的图论部分简单总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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