網路流相關

ORzyzRO發表於2024-05-23

怎麼初三了才發現網路流屁也不會,趕緊來加訓。

最大權閉合子圖

定義一張有向圖上的閉合子圖為不存在從子圖內向子圖外的連邊的子圖。

若圖中點存在點權,則定義一個閉合子圖的權值為其中的點權之和。

而最大權閉合子圖就是要求出圖中權值最大的閉合子圖。

建模方式:新建一個源點 $S$ 和一個匯點 $T$,令 $S$ 向原圖中的正權點連邊,最大流量為該點的權值,令負權點向 $T$ 連邊,最大流量為該點點權的相反數,原圖中的邊仍然連線,最大流量設為 $inf$。

考慮新圖的一個割,其等價於一個集合劃分模型,即選取一些正權點不選入閉合子圖,選取一些負權點進入閉合子圖。

則該割的大小為不選入閉合子圖的正權點點權之和-選入閉合子圖的負權點點權之和

考慮一個閉合子圖的權值是選入閉合子圖的正權點點權之和+選入閉合子圖的負權點點權之和

而兩者的和即為正權點點權和

不難發現最大權閉合子圖=正權點點權和-新圖最小割

退流

這是一種技巧,用於處理一些多次對圖進行細微變化後求最大流的問題。

若給圖加一條邊求網路流則直接加即可,若刪邊,則需要先去處原流量網路上該邊的貢獻,設刪去的邊為 $(u, v)$,則令源點為 $u$,匯點為 $S$ 跑一遍最大流,再令源點為 $T$,匯點為 $v$ 跑一遍最大流,而後將 $(u, v)$ 及其反向邊流量改為 $0$,再次令源點為 $S$,匯點為 $T$ 跑最大流即可。

相關文章