luogu P4014 分配問題

2021-08-16 12:09:24 字數 859 閱讀 3771

關於構圖:

首先,這是一道最小費用最大流和最大費用最大流(就是最小費用最大流,但建邊時的費用取負,就可以保證得到乙個最小的費用,再取反,就得到最大費用)的題目,比較裸。

構圖:1.首先有乙個超級源點和匯點:st=0,ed=2*n+1。

2.源點向每乙個人建一條流量為1,費用為0的邊,表示每乙個人只能選乙份工作。

3.每乙份工作向匯點建一條流量為1,費用為0邊,表示每乙份工作只能有乙個人來完成。

4.每乙個人向每乙個工作建一條流量為1,費用為x的邊,表示當前這個人完成這份工作的費用x。

跑兩邊費用流(最小和最大)即可。

關於**:

#include#include#include#include#include#define inf 2147483647

using namespace std;

queuef;

int n,m,len,st,ed;

struct node a[10000];

int b[200][200],last[10000],dis[10000],pre[10000],pos[10000],p[10000];

bool bz[10000];

void ins(int x,int y,int c,int d)

void init(int x) }

bool spfa()

}} f.pop();

} return dis[ed]<1061109567;

}int flow()

} return ans;

}int main()

洛谷 P4014 分配問題

有 nn 件工作要分配給 nn 個人做。第 ii 個人做第 jj 件工作產生的效益為 c cij 試設計乙個將 nn 件工作分配給 nn 個人做的分配方案,使產生的總效益最大。輸入格式 檔案的第 11 行有 11 個正整數 nn,表示有 nn 件工作要分配給 nn 個人做。接下來的 nn 行中,每行...

洛谷 P4014 分配問題

題目鏈結 有n件工作要分配給n個人做.第i個人做第j件工作產生的效益為cij 試設計乙個將n件工作分配給n個人做的分配方案,使產生的總效益最大.檔案的第1行有1個正整數n,表示有n件工作要分配給n個人做.接下來的n行中,每行有n個整數cij 表示第i個人做第j件工作產生的效益為cij 兩行分別輸出最...

洛谷P4014 分配問題(費用流)

傳送門 可以把原圖看做乙個二分圖,人在左邊,任務在右邊,求乙個帶權的最大和最小完美匹配 然而我並不會二分圖做法,所以只好直接用費用流套進去,求乙個最小費用最大流和最大費用最大流即可 1 minamoto 2 include3 include4 include5 include6 define inf...