题目链接:uva 1006 - Fixed Partition Memory Management
以任务为X,Y为每个处理器在倒数第几个完成,任务xi连向yj的边权值即为任务xi对处理器的时间贡献值,用KM算法求解。
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
const int maxn = 55;
const int maxm = 505;
const int inf = 0x3f3f3f3f;
int N, M, A[maxn], V[maxn][maxn], L[maxm];
int Lx[maxn], Ly[maxm], W[maxn][maxm];
bool S[maxm], T[maxm];
int match(int i) {
S[i] = true;
for (int j = 1; j <= M; j++) {
if (Lx[i] + Ly[j] == W