一些網路流知識

2022-07-10 17:42:09 字數 2645 閱讀 6382

有向圖:點無容量不用說,點有容量拆點。

無向圖:

點無容量:正反邊都有容量。

點有容量:拆點,乙個代表出點,乙個代表入點,入到出有點容量,出點連其他點入點。

以上是基本構圖。

最大匹配 = 最小點覆蓋 = 所有定點數 - 最大獨立集

||最小邊覆蓋

最小路徑覆蓋 = 原圖點數 - 新圖最大匹配(最小路徑覆蓋要拆點做)

以下**

n支球隊打迴圈賽,每兩個隊賽一場,勝+2分,平+1分,負+0分,已知一些比賽的勝負,問球隊1是否可能獲勝?

: 利用預流推進的思想:在每條邊上處理乙個流量為2的預流,對於已知結果的比賽把預流按得分的數值分配到節點的溢位值上,令節點一在剩餘的比賽中全勝,其他的比賽任意分配預流並連邊,建立乙個沒有源和匯的流網路。然後不斷把溢位值大於點1得分的節點的流向外推,如果某節點的高度大於2*n則無解。

cfgbdnm

: 以上做法已被錢橋學長吐槽:你能保證寫對嗎?輕吐槽:學長,預留推進方法比增廣路方法要容易實現的多,思維也直觀得多……

cfgbdnm

: 加強版,求一號的最小得分:首先二分答案key,依然那麼建圖,但是將節點1的尚未確定的邊也連上,然後把向外推的條件改為判斷溢位值是否大於key。

cfgbdnm

: 利用網路流的建圖方案:從源連到每個比賽val=2,比賽連到相應的兩個點val=2或正無窮,每個點連到匯val=該點的分數限制。

cfgbdnm: 在圖上跑最大流,如果源的出邊滿流表示有解。

cfgbdnm

: ps:後面的做法點數是n^2的,真希望今年的noi出一下這道題的加強版,把後面的做法卡掉,讓我的做法能過……

一些oier,每個oier有若干屬性{武力、智力、魅力……}(oier們怒了:丫的,你當我們是qq寵物企鵝嗎!!)如果乙個oier的各屬性都》=另乙個oier,則可將其收為小弟(小妹),如果兩人的屬性一樣則先出手的人能收另乙個,每個人能收k次小弟(小妹),求乙個收服方案,使剩下最少的oier不給別人做小弟(小妹)。

cfgbdnm

: 先做乙個預處理處理出所有的i、j,其中i可以收服j,特別的,對於相同的i,j,把他們合為乙個人,收服次數改為ki+kj-1。

cfgbdnm

: 從源點向每個人i連邊val=ki,如果i能收j,則連邊i->j' val=1,從每個人i向匯點連邊val=1。

cfgbdnm

: 該圖的最大流=最大的收服次數。

最大密度匯出子圖:

對於一般求sigma(v)-sigma(e)的問題(似乎應該叫最大權匯出子圖),直接轉化為最大權閉合圖問題求解即可。(ps:昨天明明想到正確的最大權閉合圖的建圖方案了,結果一時腦殘以為那個方法是錯的(就是從每個邊向兩邊的點連有向邊,但實際上只要邊的權值都為正就是對的))。

最大密度匯出子圖求的是sigma(v)/sigma(e)=k:

二分k的值判斷是否有sigma(v)>sigma(e)*k,將所有的點權*=k,建立最大權閉合圖模型,如果該值》0,則存在。

平面圖的最小割:

可用最短路的方法求割值。

以前曾經做過bzoj狼抓兔子,noi海拔,知道是有這麼乙個方法的。

狼抓兔子這道題是直接連邊即可。

海拔那道題邊的兩邊的值不同,但有乙個比較簡單的處理方法,如果原圖方向是從源到匯,最短路模型裡就是從s到t,反之亦然。

: 做法:for =each《域 i>end =for;f(i,s,t)=inf;dp_system.update();update =min;end =for;

給乙個矩陣,每個店有權值》=0,要求在一些非0點上安排外星瘟神姚順,代價為點的權值,使得全職為0的點與矩陣邊界不連通。

: 把矩陣變成無向圖,從源連向要求被隔開的點,把矩陣邊上的點連向匯,點權變為點的容量,求最小割。

平面圖求最大流轉化成最小割。(海拔,狼捉兔子)(s與t都在最外面的區域中)

s與t在乙個區域中,連線s和t,求s-t劃分開的兩個區域的最小割。

s和t不在乙個區域中,s和t分別引射線,發現割開s和t的會 (過t的射線奇數次,過s的射線偶數次) || (過s的射線奇數次,過t的射線偶數次)。

因此每個點有兩個域記錄過s奇偶,過t奇偶,目標是由 每個點(過s偶過t偶 到 過s偶過t奇) || (過s偶過t偶 到 過s奇過t偶)

有個網格,有些障礙,判斷是否存在多條哈密頓迴路覆蓋除去障礙的點。

黑白染色,黑與白個數不同一定無解。

然後 源 -2> 黑 -1> 白 -2> 匯,滿流有解,否則無解。

因為回路上每個點連線兩個異色。

//網格圖注意黑白染色。

下面上道題:

有n個乳酪,m只老鼠,每個乳酪有個質量w[i],每個老鼠每個單位時間可以吃g[i];(w和g是整數)

乙個乳酪每個時刻最多有乙個老鼠吃,可以在任意時刻換老鼠吃。

問全吃完的最短時間(實數)。

二分答案,v是每個老鼠在時間內吃的總數。

按v從大到小排序分別是v1,v2......vm;

構圖如下:

一些網路流。

poj 3281 題意 每一頭牛都有它喜歡吃的食物和飲料,問最多能滿足多少頭牛 讓它吃到它喜歡吃的食物和飲料。思路 從源點s對每乙個食物連一條邊,容量為1,然後食物對喜歡吃這種食物的牛連邊,容量也為1,然後每頭牛連一條邊到喜歡吃的飲料 容量也為1。每個飲料連邊到匯點,容量為1。這樣圖構好了,但是每頭...

一些網路知識的概念

1 dns 分布式資料庫,提供主機和 ip 位址之間相互轉換的服務。2 長連線和短連線 當瀏覽器訪問乙個包含多張的 html 頁面時,除了請求訪問的 html 頁面資源,還會請求資源。如果每進 行一次 http 通訊就要新建乙個 tcp 連線,那麼開銷會很大。長連線只需要建立一次 tcp 連線就能進...

關於網路流的一些經驗(一)

前幾天做了一些題 noi2006 最大獲利 其實最大權閉合圖我是分類討論出來的 題意 每個點有代價,某些特定的兩個點組合會產生乙個收益,求最大收益 一開始覺得是乙個裸的最大流,但是顯然不能知道怎麼建出最大流的收益 於是考慮逆向思維 看題解 看到最小割之後把網頁關了 然後就做了個奇葩思路 考慮我已經獲...