題目鏈結
這題比較水,就是亂改改費用流模板。判斷一下已經滿流的邊和沒有滿流的邊,然後再改改最大流模板,然後把它們拼起來就是了。
話說這題第一遍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行每...