Luogu P2604網路擴容(費用流亂搞)

2022-05-01 01:18:14 字數 1584 閱讀 1791

題目鏈結

這題比較水,就是亂改改費用流模板。判斷一下已經滿流的邊和沒有滿流的邊,然後再改改最大流模板,然後把它們拼起來就是了。

話說這題第一遍90,然後撕烤一會發現自己yy的spfa擴容方式不允許反悔。然後改了乙個貌似沒什麼用的地方,結果a了……

但是改的那個地方貌似是真的沒什麼用啊……

#include#include

#include

#include

#include

#include

#define maxn 2000

#define maxm 10000

using

namespace

std;

inline

long

long

read()

while

(isdigit(ch))

return num*f;

}inline

int count(int i)

struct

edgeedge[maxm*2

];int

head[maxn],num;

inline

void addedge(int

from,int to,int dis,int

val);

head[

from]=num;

}inline

void add(int

from,int to,int dis,int

val)

intdfn[maxn];

bool

vis[maxn];

intstart,end;

intlist[maxn];

bool

bfs()

}return

vis[end];

}int dfs(int x,int

val)

if(flow!=val) dfn[x]=-1

;

return

flow;

}int

dis[maxn];

intpre[maxn];

intspfa()

else

pre[to]=i;

if(vis[to]) continue

; vis[to]=1

; q.push(to);}}

int now=end;

while(now!=start&&now)

return

dis[end];

}int

main()

int ans=0

;

while

(bfs())

printf("%d

",ans);

long

long now=0

;

for(int i=1;i<=e;++i)

now+=spfa();

printf(

"%lld

",now);

return0;

}

P2604 ZJOI2010 網路擴容

給定一張有向圖,每條邊都有乙個容量c和乙個擴容費用w。這裡擴容費用是指將容量擴大1所需的費用。求 1 在不擴容的情況下,1到n的最大流 2 將1到n的最大流增加k所需的最小擴容費用。輸入檔案的第一行包含三個整數n,m,k,表示有向圖的點數 邊數以及所需要增加的流量。接下來的m行每行包含四個整數u,v...

洛谷P2604 ZJOI2010 網路擴容

題目大意 給定一張有向圖,每條邊都有乙個容量c和乙個擴容費用w。這裡擴容費用是指將容量擴大1所需的費用。求 1.在不擴容的情況下,1到n的最大流 2.將1到n的最大流增加k所需的最小費用。題解 先跑最大流,在殘餘網路上跑費用流 卡點 無 c code include include include ...

ZJOI2010 網路擴容

題目描述 給定一張有向圖,每條邊都有乙個容量c和乙個擴容費用w。這裡擴容費用是指將容量擴大1所需的費用。求 1 在不擴容的情況下,1到n的最大流 2 將1到n的最大流增加k所需的最小擴容費用。輸入格式 輸入檔案的第一行包含三個整數n,m,k,表示有向圖的點數 邊數以及所需要增加的流量。接下來的m行每...