題目描述
如題,給出乙個網路圖,以及其源點和匯點,每條邊已知其最大流量和單位流量費用,求出其網路最大流和在最大流情況下的最小費用。
輸入輸出格式
輸入格式:
第一行包含四個正整數n、m、s、t,分別表示點的個數、有向邊的個數、源點序號、匯點序號。
接下來m行每行包含四個正整數ui、vi、wi、fi,表示第i條有向邊從ui出發,到達vi,邊權為wi(即該邊最大流量為wi),單位流量的費用為fi。
輸出格式:
一行,包含兩個整數,依次為最大流量和在最大流量情況下的最小費用。
輸入輸出樣例
輸入樣例#1:
4 5 4 3
4 2 30 2
4 3 20 3
2 3 20 1
2 1 30 9
1 3 40 5
輸出樣例#1:
50 280
說明 時空限制:1000ms,128m
資料規模:
對於30%的資料:n<=10,m<=10
對於70%的資料:n<=1000,m<=1000
對於100%的資料:n<=5000,m<=50000
分析:模板題
注意兩點:1.判斷時不能使用0x7f,原因是不能精準判斷,只能大致估計,所以在memeset時最好使用0x33,這樣在判斷時的寫法為dis[t]<0x33333333(8個3)
2.記得加快讀
這裡寫**片
#include
#include
#include
#include
using
namespace
std;
const
int inf=0x33333333;
const
int n=1001000;
struct node;
node way[n*2];
int st[n],tot=-1;
int n,m,s,t,flow=0,ans=0;
bool p[n];
int pre[n],dis[n]; ///
int in() //快讀
void add(int u,int w,int z,int c)
int spfa()}}
p[r]=1; ///
}return dis[t]void doit()
}printf("%d %d\n",flow,ans);
return;
}int main()
doit();
return
0;}
luoguP3381 模板 最小費用最大流
如題,給出乙個網路圖,以及其源點和匯點,每條邊已知其最大流量和單位流量費用,求出其網路最大流和在最大流情況下的最小費用。include include include include define maxn 5005 define maxm 50005 2 define inf 1000000007...
Luogu P3381 模板 最小費用最大流
傳送門 最小費用最大流,就是在求最大流的前提下,使選出的路徑費用最小。每條邊除了容量w外,還要記錄乙個單位流量費用co。其實就是 dinic 的 bfs 和 spfa 同時進行,每次更新增廣路時,保證選擇的一定是費用最小的一條路徑。paopo 說這個用不了當前弧優化,所以我就沒用qwq 對於每個點,...
luogu P3381 模板 最小費用最大流
如題,給出乙個網路圖,以及其源點和匯點,每條邊已知其最大流量和單位流量費用,求出其網路最大流和在最大流情況下的最小費用。輸入格式 第一行包含四個正整數n m s t,分別表示點的個數 有向邊的個數 源點序號 匯點序號。接下來m行每行包含四個正整數ui vi wi fi,表示第i條有向邊從ui出發,到...