網絡流做題

自己最近準備學習網絡流,轉載別人的做題記錄學習學習QAQ

獻上幾篇論文:1)最小割模型在信息學競賽中的應用》

                    2)《淺析一類最小割問題》

 

1、bzoj1066(最大流)

題意:戳這裏

思路:很明顯拆點最大流模型,然後對於每個點每個高度流量限爲1,那麼根據最大流即爲可以出去的蜥蜴的數量。

2、bzoj1077(費用流)

戳這裏

3.bzoj1391(最小割)

題意:戳這裏

思路:有點像最大權閉合圖。。可以利用最小割的性質建圖:

        <S,任務,收益>

        <機器,T,購買費用>,<任務,機器,租用費用>

        這樣,如果與T相連的邊爲割,表示購買機器花費更小。

        如果與S相連的邊爲割,表示任務花費太大,不做任務更優(收益爲0)。

        如果<任務,機器>邊爲割,表示任務花費太大,不做任務更優(收益爲0)。

        最後總收益-最大流即爲答案

4、bzoj1412(最小割)

題意:有一些格子裏是狼,一些裏是羊,一些是空的,要使狼和羊的格子不相通,至少要堵多少條邊界。

思路:很明顯的最小割

5、bzoj1433(二分圖匹配)

題意:戳這裏

思路:需要牀位的爲一邊,提供牀位的爲一邊,認識連一條邊(包括自己跟自己),然後就是一個二分圖最大匹配。

6、bzoj1475(最大點獨立集)

題意:戳這裏

思路:Amber論文裏講到的題目,很明顯可以看出是個二分圖模型。。

        但是不容易看出是求最大點權獨立集。那麼構圖就很顯然了。

7、bzoj1497(最大密度子圖)

題意:戳這裏

思路:可以轉化成最小割。具體看Amber論文。

8、bzoj1520(費用流)

題意:戳這裏

思路:很明顯的最小費用流

9、bzoj1532(最大流+二分)

題意:戳這裏

思路:二分最大分數score,那麼

        <S,人,score>,<人,比賽,1>,<比賽,T,1>

        判斷流量flow = m

10、bzoj1565(tarjan+最大權閉合圖)

題意:戳這裏

思路:首先先把保護關係建立有向邊,那麼如果出現環的話,環裏面的所有點,包括他能保護得點都不能取。。

         那麼剩下的圖再進行最大權閉合圖的構圖

code:

 View Code

 

11、bzoj1585(最小割)

題意:戳這裏

思路:

拆點最小割,保證每個點流量爲1

<S, 1, INF>

提到的點x : <x', T, INF>

對於每個點x,爲1或是提到的點: <x,x',INF>

對於每個點x,不爲1且不是提到的點:<x,x',1>

對於原圖每條邊x->y: <x', y, INF>和 <y', x, INF>

最大流即爲答案。。

ps..這一題跟usaco原題改動有點大。。害我做原題時進坑了。。

12、bzoj1711(最大流)

題意:戳這裏

思路:三分圖匹配,記得中間那個點要拆點限流量爲1

13、bzoj1741(最小點覆蓋)

題意:戳這裏

思路:把行列抽象出來成爲一個二分圖,有小行星就連一條邊。那麼題目就等價與求出最小的點覆蓋所有的遍。

14、bzoj1779(拆點最大流)

題意:戳這裏

思路:好像還不是很理解。。過後補上。

15、bzoj1797(最小割+tarjan)

題意:戳這裏

思路:首先跑一邊最大流。然後在殘餘圖中進行tarjan縮點。

         那麼對於所有滿流邊:

              如果連接S,T兩個強聯通分量,那麼一定是在最小割裏。

              如果連接兩個不同的強聯通分量,可能出現在最小割裏。

16、bzoj1822(二分+最大流)

題意:戳這裏

思路:二分時間t,那麼就可以算出在這個時間內每個巫妖可以攻擊的數目。

         然後建圖:

         <S,  巫妖, 可攻擊數目>,<巫妖,可攻擊到的小精靈, 1>,<小精靈, T , 1>

          最後判斷最大流是否爲小精靈個數

          比較麻煩的是判斷巫妖是否攻擊到小精靈,需要一點計算幾何知識。

17、bzoj1834(網絡流模板)

題意:戳這裏

思路:<S, 1, K>, 先跑一邊最大流,然後在殘餘網絡的每條邊加上一條流量Inf費用爲擴容費用的邊

18、bzoj1877(最小費用最大流)

題意:戳這裏

思路:拆點,然後就是經典構圖了

19、bzoj1927(最小費用最大流)

戳這裏

20、bzoj1934(最小割)

題意:戳這裏

思路:分集合很典型的最小割的應用

         最初選擇睡午覺 <S, i, 1>

         最初選擇不睡午覺 <i, T, 1>

         i與j爲好友, <i, j, 1> <j, i, 1> 

         最小割即爲答案。。這應該是pty大神論文最簡單的應用吧

21、bzoj1937(二分圖最大權匹配問題)

題意:戳這裏

思路:把所有邊分爲樹邊與非樹邊,那麼對於費樹邊i,連接u,v

         權值wi>=wj(所有u,v路徑上的邊j),所以非樹邊只有可能變大,樹邊只有可能變小

         即,對於非樹邊i即路徑上的任意樹邊j:

              wi + di >= wj - dj

         => di + dj >= wj - wi

        wj-wi爲定值,那麼等式幾乎就跟最大權匹配的頂標的式子一樣了。。

         套用最大權匹配km算法。。

        本來想用費用流,一想到邊很多就慫了。。

22、bzoj2039(最小割)

戳這裏

23、bzoj2127(最小割)

題意:戳這裏

思路:可利用二元關係建圖:

         <S, A, w1/2>,<A, T, w2/2>

        <S, B, w1/2> , <B,T,w2/2>,

         <A, B, (w1+w2)/2>, <B, A, (w1 + w2)/2>

       爲防止出現小數,可將所有流量都流量*2,最後/2即可。

        答案即爲sum(喜悅值)- flow

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章