洛谷P3381 模板 最小費用最大流

2022-08-05 03:45:14 字數 2124 閱讀 1105

模板 最小費用最大流

洛谷p3381 【模板】最小費用最大流

這題我用這個會t 只有 80分,感覺最小費用最大流就應該加一些常數優化,否則會非常慢

1 #include 2 #include 3 #include 4 #include 5 #include 

6 #include 7 #include 8 #include 9 #include 10

#define inf 1e9

11#define maxn 5005

12#define maxm 50005

13#define pair pair 14

using

namespace

std ;

1516

intn,m,s,t,x,y,vol,cost,gedgecount ;

1718

pair ans ;

1920

struct

edge;

23 edge gedges[2*maxm] ;

2425

intghead[maxn],gpre[maxn],gpath[maxn],gdist[maxn] ;

2627 inline void insertedge(int u,int v,int vol,int

cost)

2841

42 inline bool spfa( int s,int

t )

4364}65

}66if(gpre[t]==-1

) 67

return

false

; 68

return

true

; 69}70

71 inline pair mincostflow(int s,int

t) 72 87

}88pair ans ;

89 ans.first = flow ; ans.second =cost ;

90return

ans ; 91}

9293

intmain()

94102 ans =mincostflow(s,t) ;

103 printf("

%d %d\n

",ans.first,ans.second ) ;

104return0;

105 }

這個加了一下優化

然後就跑得比較快了 1400ms

1 #include2 #include3

const

int maxn=1e4+10;4

const

int maxm=1e5+10;5

const

int maxt=2139062143

;6 inline int min_(int x,int y)

7int

n,m,s,t,nflow,nfee,flow,fee;

8int

a,b,c,d;

9int h[maxn],hs=1;10

inte_q[maxm],e_z[maxm],e_n[maxm],e_w[maxm],e_f[maxm];

11int add(int q,int z,int k,int w,int f)

12int

q[maxm],head,tail;

13int

w[maxn],p[maxn];

14bool

v[maxn];

15int ap(int k,int

v) 22

void

mcmf()36}

37if(w[t]==maxt) break

;38 nflow=ap(t,maxt);

39 flow+=nflow;

40 fee+=nflow*w[t];41}

42}43int

main()

49mcmf();

50 printf("

%d %d\n

",flow,fee);

51return0;

52 }

洛谷 P3381 模板 最小費用最大流

乙個網路圖雖然最大流確定,但達到最大流的方案並不唯一。如果對於每條邊,都加乙個費用f,表示這條邊流過單位流量的代價,求達到最大流時的最小費用,這就是最小費用最大流問題。解決方法 ek費用流或zwk費用流。這裡只講ek費用流。採用貪心的思想。我們每次增廣時都選擇費用最小的一條。這樣,因為最大流是確定的...

洛谷 P3381 模板 最小費用最大流

題目鏈結 mcmf 最小費用最大流 由於要使用反向邊。定義乙個h i 表示從匯點到i的最短距離。對於一條邊e v,u e.cost e.cost h v h u 這樣可以保證圖中沒有負權邊的存在,這樣就可以使用dij來求最短路。每次求一條最短路,然後通過這條最短路更新最大流,直到找不出最短路為止。i...

洛谷 P3381 模板 最小費用最大流

洛谷 p3381 模板 最小費用最大流 include include include include include include include include include define maxe 50005 define maxn 5005 define inf 0x3f3f3f3f t...