模板 最小費用最大流

2022-05-09 12:30:08 字數 916 閱讀 1515

題目描述:

給出乙個網路圖,以及其源點和匯點,每條邊已知其最大流量和單位流量費用,求出其網路最大流和在最大流情況下的最小費用。

題解:這是最小費用最大流模板。

對於ek演算法,我們可以通過bfs找出增廣路徑然後解出最大流。

但是最大流值是一定的,流法卻有很多。

我們可以將每條邊費用作這條邊的邊長,用spfa求出最短增廣路。

其實就是將ek中的bfs換成spfa。

**:

#include#include

#include

#include

using

namespace

std;

#define n 5050

#define m 50050inline

intrd()

while(ch>='

0'&&ch<='9')

return f*c;

}int n,m,s,t,hed[n],cnt=-1

;struct

ege[

2*m];

void ae(int f,int t,int v,int

w)int

maxf,minw;

intdis[n],fl[n],pre[n],fa[n];

bool

vis[n];

const

int inf = 0x3f3f3f3f

;bool

spfa()}}

}return pre[t]!=-1;}

void

mcmf()

}}int

main()

mcmf();

printf(

"%d %d\n

",maxf,minw);

return0;

}

最小費用最大流模板

const int n 1010 點 const int m 2 10010 邊 const int inf 1000000000 struct nodee m int next1 m point n dis n q n pre n ne ne為已新增的邊數,next,point為鄰接表,dis為花...

最小費用最大流模板

一 最小費用最大流的模型 在保證流量最大的前提下,所需的費用最小,這就是最小費用最大流問題 帶有費用的網路流圖 g v,e,c,w v 頂點 e 弧 c 弧的容量 w 單位流量費用。任意的弧對應非負的容量c i,j 和單位流量費用w i,j 滿足 流量f是g的最大流。在f是g的最大流的前提下,流的費...

最小費用最大流 模板

因為含有負權邊,所以使用spfa進行增廣。指定流量的最小費用流可以初始化乙個f,然後每次一直迴圈到f 0為止。函式返回的是最大流,當然經過少量修改可以返回最小費用,利用最小流量乘以相應的費用即可。prevv記錄父節點,preve記錄當前節點對應父節點的第幾條邊。const int inf 0x3ff...