分配問題 網路流24題

2021-09-25 22:15:20 字數 870 閱讀 1744

沙雕題,建圖很簡單。

跑一遍最小費用,再把邊權取反重跑一遍最小費用。

#include #define rep(i, a, b) for(int i = (a); i <= (b); i++)

using namespace std;

const int n = 250;

int n,m,s,t,tot;

int head[n];

struct nodeedge[int(2e5+100)];

int dis[n],pre[n],last[n],flow[n],maxflow,mincost; //pre:前驅結點 last:每個點所連的前一條邊 flow:源點到該點的流量

bool vis[n];

void ae(int u,int v,int cap,int cost);

head[u] = tot;

}bool spfa() }}

}return pre[t] != -1;

}void dinic()

}return ;

}void init()

int s[110][110];

int main()

rep(i, 1, n)

dinic();

printf("%d\n",mincost);

init();

s = 0;

t = 2*n+1;

rep(i, 1, n)

rep(j, 1, n)

rep(i, 1, n)

dinic();

printf("%d\n",-mincost);

return 0;

}

網路流24題 分配問題

時空限制1000ms 256mb 有 n件工作要分配給 n個人做。第 i個人做第 j件工作產生的效益為 c i j 試設計乙個將 n件工作分配給 n個人做的分配方案,使產生的總效益最大。輸入格式 檔案的第 1行有 1 個正整數 n 表示有 n 件工作要分配給 n 個人做。接下來的 n行中,每行有 n...

題解 網路流24題之分配問題

傳送門 分配問題就是將人和工作分開來做匹配,但是與一般的二分圖匹配不同的是,每個匹配都是有權值的。這個問題就是二分圖最大權完美匹配問題。雖然這個問題可以用二分圖最大權完美匹配的專門演算法km演算法解決,但是這裡只講網路流解法。首先發現人和工作的下標都是1 n的,直接建圖會產生歧義,於是我們可以定義人...

網路流24題18 分配問題

有 n 件工作要分配給 n 個人做。第 i 個人做第 j 件工作產生的效益為ci j 試設計乙個將n 件工作分配給 n 個人做的分配方案,使產生的總效益最大。對於給定的 n 件工作和 n 個人,計算最優分配方案和最差分配方案。第 1 行有 1 個正整數 n,表示有 n 件工作要分配給 n 個人做。接...