luoguP3381 模板 最小費用最大流

2021-07-30 03:25:05 字數 1335 閱讀 4561

題目描述

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

輸入輸出格式

輸入格式:

第一行包含四個正整數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出發,到...