圖論知識總結
總結一下圖論的知識點幾個大的分割槽
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:減邊,優化複雜度技巧