網路流總結

2022-03-16 18:57:26 字數 1535 閱讀 3962

聯賽後按專題刷題,最近是網路流,感覺自己每到刷題時就會很慢,好在最近狀態還可以。

然而老夫思考一番決定還是放題解包吧,從題解中尋找思路。

關於最大流:

首先是一些比較基礎的方法,如:拆點,先把總的貢獻加上再盡量減小(把至少轉化成最大)

以及一些建圖技巧:奇偶染色,按照某個限制進行拆點,動態加點等

例題:蜥蜴(基礎題,拆點限流

星際戰爭(與二分結合

奇怪的遊戲(奇偶染色

士兵占領(先加貢獻,減最大流

緊急疏散(按時間拆點

個人理解:最大流的題難點其實在於建圖方式,對轉化題意方面要求不高

關於最小割 :

需要一定的轉化題意的能力,

首先是類似二分圖,對兩點間有限制的,如:二選一。可以用最小割解決

其次是可以轉化為最大權閉合子圖的。

技巧方面,注意資料範圍如果很大看能不能轉化為對偶圖跑最短路

例題:狼抓兔子&海拔(平面圖轉對偶圖

切糕(可以算是一類模型,用inf邊去限制割的邊的範圍

最大獲利&植物大戰殭屍&壽司餐廳&employ人員僱傭&線性代數(最大權閉合子圖

另外:最小割樹(這玩意我只會板子。。。

個人理解:最小割在某些情況下可以理解為比較大小的過程。(好像就是最大權閉合子圖

另外:若可以匯出「若i則j,所選權值最大」之類的東西,可以考慮最大權閉合子圖

關於費用流(只會spfa

個人覺得從流和費用的實際意義出發考慮問題比較明白

技巧方面,動態建點&邊

例題:修車&美食節&壕遊戲:(拆點,動態建點&加邊

數字配對&千鈞一髮:(推式子,二分圖黑白染色

上下界網路流:

無源匯可行流:是其他上下界的基礎,一定要理解

主要思想是先滿足下限,然後根據每個點的流入流出量,新建超級源匯s,t。

向原圖中的點連線相應的必需權值的邊。

有源匯可行流:在無源匯的基礎上,t先s連inf。同時根據實際含義,t向s連邊的流量其實就是原圖的可行流的流量。

上下界費用流:這玩意其實特別好用,好多費用流的題,若對流量和費用都有限制,可以考慮大力上下界費用流,這樣可以避免很多限制,如:星際競速。

然而還有乙個技巧:對於某些上下界費用流的圖,可以對每個點拆點,中間連線-inf的費用,最後再減去,這樣就可以避免上下界網路流。

所以好像上下界費用流也不咋地。。。

例題:志願者招募:按照實際意義分析,考慮對於每種志願者新建乙個點x,從結束日向x連邊,從x向起始點連邊,含義是有一股流從x出發從起點跑到終點最後在回到x(迴圈流)然後就可以跑無源匯費用流了,然後你發現新建的點只是作為乙個中轉站出現的,直接從結束點想起始點連邊即可。

旅行時的困惑:100000個點跑上下界???(打個貪心直接溜

80人環遊世界&星際競速:裸的(可以點權-inf搞)

個人理解:上下界網路流其實可以作為一種暴力,用規定上下界的方式對流量進行約束。

upd:對於費用流,若一開始從源點到匯點沒有負權邊,即所有正的流量都對應正的花費,則可以在spfa中加一句:if(dis[u]>=dis[t])continue;,加上後跑得很快,但我不會證。。。

網路流總結

今天學的網路流,總的感覺來說稍難,不管是理解還是什麼,但是理解了後,就變得簡單許多。ford fulkerson演算法 是來求最大流量問題,從源點出發,到匯點,到底能多少能流入匯點。演算法 1 從源點出發,找相鄰邊,如果相鄰邊未被找過並且還可以流入流量就dfs。2 更新流入的邊。3 重複操作,直到沒...

網路流總結

今天做了一天的網路流,也發現了很多有趣 有毒 的建圖方法,也算是收穫很多了,這裡就做個總結吧。網路流跑的方法大家都會我就不說了,題考察的重點也就是建圖。建圖就涉及到2個方面 1.建點。建點其實就是網路流的難點了,一般點弄好了邊也容易了。建點的困難就在於有時要拆點,我總結了一下拆點主要是這幾個作用 a...

網路流總結

1.hdu1532 給網路圖,求1 n的最大流.注意邊數 2 2.hdu3572 經典建圖模型,有些東西能轉換為容量考慮 網路流演算法.dinic學了乙個多路增廣優化,能少一次遞迴的時間 1.hdu1533 建圖方式,假設有cntm個人,cnth個房子,分別對應編號 1,cntm cntm 1,cn...