模板 網路流 dinic

2021-10-05 19:43:48 字數 1017 閱讀 9842

題目描述輸入

輸入包括幾種情況。對於每一種情況,第一行包含兩個空間分離的整數,n(0<n<=200)和m(2 <=m <=200)。n是農民約翰挖溝的數量。m是那些溝渠的交叉點。十字路口1是池塘。交叉點m是流。以下n行中的每乙個包含三個整數,si、穎娃和ci。si和ei(1<si,ei <=m)表示該溝之間的交匯點。水將從這條溝從si流入穎娃。ci(0<ci=10000000)是水通過溝道的最大速率。

輸出

對於每一種情況,輸出乙個單一的整數,水可以從池塘中排空的最大速率。

樣本輸入

5,4,1,2,40,1,4,20,2,4,20,2,2,

樣本輸出

const

int maxn =

210;

const

int inf =

1<<30;

struct edge e[maxn <<1]

;int num, n, m, s, t, g[maxn]

;queue<

int> que;

int vis[maxn]

, d[maxn]

;void

addedge

(int u,

int v,

int val)

void

bfs()}

}}intdfs

(int u,

int flow)

}return ans;}}

intdinic()

}int

main()

s =1, t = n;

cout <<

dinic()

<< endl;

}return0;

}

模板 網路流 Dinic

const int maxn 207,inf 0x3f3f3f3f int n,m n個點,m條邊 int mp maxn maxn 鄰接矩陣 int que maxn maxn head,tail bfs佇列 首,尾 int dist maxn 距源點距離,分層圖 int ans bfs查詢是否連...

poj 3469 dinic網路流模板

題意 要在由核a和核b組成的雙核cpu上執行n個模組。模組i在核a上執行的花費為ai,在核b上執行的花費為bi。有m個相互之間需要進行資料交換的模組組合 ai,bi 如果這倆模組在同一核上執行則沒有花費。否則會產生wi的花費。計算執行所有模組所需的最小花費。解析 用最小的費用將物件花費成兩個集合的問...

網路流dinic演算法

遇到過不少網路流的題目,直接找增廣路徑的方法時間複雜度實在受不了。常面臨tle的問題。通過學習這個dinic演算法,不僅 短,效率也高。該演算法的重點在於乙個層次圖,是在普通增廣的方法上加了優化,普通的增廣是每次在圖上四處遊蕩,直到找到匯點為止。dinic演算法就是把每個點都給乙個等級level l...