網路流學習筆記

2022-07-25 11:36:10 字數 871 閱讀 5605

基本思路

**實現

#include #include #include #include using namespace std;

const int maxn = 100;

const int maxm = maxn*maxn;

const int inf = 0x3f3f3f3f;

int head[maxn], next[maxm], ver[maxm], edge[maxm], flow[maxm];

int tot;

void init()

void add(int x, int y, int z, int f)

void add2(int x, int y, int z)

int ss, tt, res[maxn], pre[maxn], v[maxn], pre_index;

int bfs()

}} }

return 0;

}int ek()

ans+=f;

f = bfs();

if(f == 0) break;

} return ans;

}int main()

cout << ek() << endl;}/*

6 81 4

1 6 2

6 5 1

5 4 3

3 4 2

1 4 3

2 3 1

1 2 2

1 3 2

*/

遇到問題

死迴圈鄰接表的終止值是0還是-1需要考慮清楚

bfs搜尋錯誤

由於可能出現環,需要標記進入佇列的點,借用spaf演算法的標記方式,保證不因為環而死迴圈

網路流學習筆記

先宣告,來自網路,寫得也比較亂,如果有任何問題可以聯絡博主。首先,我們來理解下網路流。在乙個有向圖上選擇乙個源點,乙個匯點,每一條邊上都有乙個流量上限 以下稱為容量 即經過這條邊的流量不能超過這個上界,同時,除源點和匯點外,所有點的入流和出流都相等,而源點只有流出的流,匯點只有匯入的流。這樣的圖叫做...

網路流 學習筆記

略。update 我發現我的最大流一直是寫錯的!寫錯一年了!這一年居然沒有被卡真是奇蹟 void dedge int sta,int edn,lon w fst sta ecnt void edge int sta,int edn,lon w bool bfs return 0 lon dfs in...

網路流學習筆記(2)

最小費用最大流 在保證最大流的前提下,讓費用最小。我們有兩種思路 1.先保證流最大,再去找費用最小的。2.保證費用最小,去找最大流。通常情況下我們會選擇第二種。我們想一下最大流是怎麼做的,bfs分層圖然後dfs每次只找深度 1的去增廣。如果我們要保證最小費用呢?每次去找費用最小的增廣。我們可以spf...