#6678. 任务分配
任务分配
题面:任务分配
时间限制: 1 秒 内存限制: 256 MB
有 n 个人和 n 个任务。
第 i 个人完成第 j 个任务的代价为 c[i][j]。
现在需要给每个任务恰好分配一个人,并且每个人最多只能完成一个任务。
请你计算完成所有任务所需的最小总代价。
输入格式
第一行包含一个整数 n。
接下来 n 行,每行包含 n 个整数。第 i 行第 j 个整数表示第 i 个人完成第 j 个任务的代价 c[i][j]。
输出格式
输出一个整数,表示最小总代价。
数据范围
1 <= n <= 10
0 <= c[i][j] <= 10^6
样例
输入
2
3 7
1 4
输出
7
说明
有两种分配方式:
任务 1 分给第 1 个人,任务 2 分给第 2 个人,总代价为 3 + 4 = 7
任务 1 分给第 2 个人,任务 2 分给第 1 个人,总代价为 1 + 7 = 8
因此最小总代价为 7。
测试点说明表
| 测试点编号 | n ≤ | c[i][j] ≤ | 特殊性质 | 设计目的 |
|---|---|---|---|---|
| 1 | 5 | 单人单任务 | 覆盖最小规模 | |
| 2 | 2 | 7 | 样例数据 | 对应原程序固定矩阵,答案为 7 |
| 3 | 100 | 对角线最优 | 检查基础分配选择 | |
| 4 | 3 | 9 | 普通矩阵 | 覆盖小规模全排列搜索 |
| 5 | 5 | 含 0 代价 |
覆盖低代价任务分配 | |
| 6 | 4 | 19 | 中等规模经典矩阵 | 覆盖多任务最优匹配 |
| 7 | 9 | 代价接近 | 检查细微差异下的最优解 | |
| 8 | 5 | 20 | 对角线明显最优 | 覆盖强剪枝场景 |
| 9 | 9 | 较复杂矩阵 | 覆盖较大排列空间 | |
| 10 | 6 | 极限 n |
覆盖最大规模 DFS 分配 | |
相关
在以下作业中: