網路流的基本性質與演算法

2021-07-16 13:17:23 字數 961 閱讀 8160

我決定繼續我的學術+數學風格,這種風格雖然有點難理解,但是定義精確,而且往往能反映出更多的性質,比語言描述往往更為簡潔。

好吧,我們繼續我們的網路流的介紹。考慮乙個有向圖g=

(v,e

) ,其源點為

s ,匯點為

t,網路流實際上可以用水流模擬,比如說在

s 點出發很多(可以理解為無限多)的流量,容易發現,由於每條邊實際上都應當有乙個流量限制(模擬一下生活:水管都有最大通過量),所以到

t點的流量實際上有乙個上限,而不是無窮大。那麼,網路流中的最大流就是來求出這樣的上限的。

如果再考慮另乙個例子,比如說現在我們有無限多的貨物要通過乙個公路系統,公路系統上沒一條路都有乙個容量限制,同時還有收費站,每一噸貨物都要收費若干元(而且每一條路上的費用不一定相同),那麼同樣,我們也只能從起點

s 運一些貨物到終點

t,而不是無窮多。那麼,現在的問題就是,在運的貨物最多的情況下,怎樣使得所花費的費用最少?那麼這就是最小費用最大流了。

用神奇的數學方法描述成線性規劃形式,就是像下面這樣: ma

ximi

zext

⎧⎩⎨⎪

⎪⎪⎪⎪

⎪⎪⎪a

11x1+

a12x2

…+a1

n≤c1

a21x1

+a22x

2…+a

2n≤c

2⋮am

1x1+

am2x

2…+a

mn≤c

m 其中,c

i 表示第

i 條邊的最大流量,那麼這個模型就很容易被看出了。

從上面這一大塊式子可以看出乙個流的三個特性:

但是,dinic短啊!

模運算的基本性質

給定乙個正整數p,任意乙個整數n,一定存在等式 n kp r 其中k r是整數,且 0 r p,稱呼k為n除以p的商,r為n除以p的餘數。對於正整數p和整數a,b,定義如下運算 取模運算 a p 或a mod p 表示a除以p的餘數。模p加法 a b p 其結果是a b算術和除以p的餘數,也就是說,...

棧和佇列的基本性質

棧是一種特殊型別的線性表,訪問 插入 刪除只能發生在棧頂。vector繼承自list類,所以裡面有實現相關的介面,stack類是其中的乙個實現類。peek 返回棧頂元素,push 壓入棧,pop 刪除棧頂元素並且返回。佇列是一種 fifo先進先出的資料結構。元素被追加到佇列的末尾,從頭部進行刪除。p...

單調棧的基本性質介紹

單調棧的定義 單調棧就是棧內元素單調遞增或者單調遞減的棧,單調棧只能在棧頂操作。為了更好的理解單調棧,則可將單調棧用生活情形模擬實現,例如 我們借用拿號排隊的場景來說明下。現在有很多人在排隊買可樂,每個人手裡都拿著號,越靠前的人手裡的號越小,但是號不一定是連續的。小明拿了號後並沒有去排隊,而是跑去約...