1. 程式人生 > >圖論知識總結

圖論知識總結

總結一下圖論的知識點幾個大的分割槽

1:網路流

2:強連通分量,割點和橋

3:最短路

4:最小生成樹

5:圖論的小知識點

 網路流

一:最大流問題

現在很多都是配合二分通過網路流進行判定,單獨的網路流,就是以流作為方案就好。//這一部分就是通過做題,積累就好

二:費用流問題

是在滿足最大流的條件下,費用最小,這裡的最大流一般就是一種條件(體會,保證圖中滿流或保證流量最大,的情況下的費用最小,這裡是表示條件)。

三:最小割

二者取其一式、最大權閉合子圖

//主要的思想還是通過複習以前的題目,和多做題,強化

強連通分量

很多強連通分量,都是配合著縮點來搞,然後依據有向無環圖的一些性質,通過一些其他的方法來處理(DAG上dp,DAG上記憶化,DAG性質)

割點和橋(只做過模板題)

最短路

求最少步數,也就是給出的圖邊長為1,這樣的圖中求最短路,這種的bfs就可以解決,不需要跑最短路。

差分約束系統:形如ai-aj<=k這樣的約束,求最大或最小值的題,注意有的情況會需要超級源的技巧。

建模:最短路的建模做的不多,可以分為點權最短路,和普通的邊權最短路,一般就是將狀態構成點,有聯絡的狀態之間連邊,邊權就是轉移的費用,由此實現初始向目標的最短路。

技巧:首先最短路還有包括網路流中有一個很重要的技巧(70分到100分的區別),就是有些圖我們加邊,我們將全部的邊(n^2級)加進去,但是分析性質可以發現只需要加O(n)級數量的邊就可以,實際上就是排除一些不需要的邊以進行優化——bzoj4152

最小生成樹

性質(都可以根據克魯斯卡爾過程證明出來)

1:最小生成樹一定是一個最小瓶頸生成樹(最大邊最小),最小生成樹上的任意兩點之間的路徑一定是最小瓶頸路

2:圖中環上的最大邊,最小生成樹一定不包含它;

3:生成樹中若再加一個邊,就一定會構成一個環,若要再構生成樹,也一定要刪除環中的一個邊,由此可以做次小生成樹。

其重要思想加邊構環判定大小

應用

1:最小生成樹在很多時候是,在題目當中作為初始化的輔助用,然後再套上別的演算法(例:貨車運輸 MST+倍增),當然這一般是類似貪心的思想,證明都是根據最小生成樹的性質。(貨車運輸——性質1),//注意貨車運輸求得是最大生成樹,演算法沒有什麼區別

2:考察建模:bzoj1601(超級源技巧)//習題不夠

3:考察性質與猜想:bzoj1821(需要練習)

矩陣樹定理(未學)

圖論小知識點

找環:首先判環的話有dfs判環(tyvj模擬賽,t3)和拓撲判環,其中最小環是通過floyd來求的。//待填坑

2-SAT

拓撲排序,拓撲序dp。:總是作為一個成分參與題目的一部分,輔助進行解題。

還有在題目中遇到一些沒見過的圖論的題和新定義,可以嘗試進行推斷分析該型別圖的性質,以便於解題。

總說圖論:

在圖論的建模當中,通用且常有的技巧有

1:分點技巧

2:超級源技巧

3:減邊,優化複雜度技巧