网络流24题-分配问题
分配问题 时空限制 1000ms / 256MB 题目描述 有 n 件工作要分配给 n 个人做。第 i 个人做第 j 件工作产生的效益为 c[i][j] 。试设计一个将 n 件工作分配给 n 个人做的分配方案,使产生的总效益最大。 输入输出格式 输入格式: 文件的第 1 行有 1 个正整数 n ,表示有 n 件工作要分配给 n 个人做。 接下来的 n 行中,每行有 n 个整数 c ,表示第 i 个人做第 j 件工作产生的效益为 c[i][j] 。 输出格式: 两行分别输出最小总效益和最大总效益。 输入输出样例 输入样例: 5 2 2 2 1 2 2 3 1 2 4 2 0 1 1 1 2 3 4 3 3 3 2 1 2 1 输出样例: 5 14 说明 1 ≤ n ≤ 1 0 0 一个人只能做一个工作 二分图多重最优匹配。 感觉就是费用流,只不过知道模型容易建图了一些。 #include<bits/stdc++.h> #define N 505 #define INF LLONG_MAX/2 using namespace std; typedef struct { int u,v; long long flow,cost; }ss; ss edg[N*N]; vector<int>edges[N]; int now_edges=0; void addedge(int u