【问题描述】
假设有n个任务需要分配给n个人执行,每个人只执行一个任务,每个任务只由一个人执行。第i个人执行第j个任务的成本是Cij(1<=i,j<=n),
求解初最小成本的分配方案。
【基本算法思想】
暴力法:
用矩阵表示任务分配问题,矩阵元素Cij(1<=i,j<=n)表示人员i执行任务j的成本。任务分配问题转化为,在矩阵中的每一行选取一个元素,这些元素
分别属于不同的列。用一个n元组(j1,j2,...,jn)表示一个可能解,其中ji表示第i行中选择的列号。用暴力法解决此问题则可表示成,生成一个
n元组的全排列,遍历输出最小的成本代价即可。
复杂度分析: 一个n元组的全排列的个数为n!个。暴力法慎用!!!
【源代码】
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
#define MAX 99999