#CSES2129. 任务分配

    ID: 374 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>图论二分图匹配KM算法匈牙利算法费用流CSES

任务分配

题目背景

翻译自 CSES-2129 题。

题目描述

一家公司有 nn 个员工,且有 nn 个任务需要完成。我们知道每个员工执行每个任务的费用。每个员工必须被分配一个任务。请问,如何最优分配任务,使得总费用最小,并给出任务的具体分配方案。

输入格式

第一行包含一个整数 nn:表示员工的数量,同时也表示任务的数量。

接下来的 nn 行中,每行包含 nn 个整数,表示每个员工执行每个任务的费用。第 ii 行中的第 jj 个整数 cijc_{ij} 表示第 ii 个员工执行第 jj 个任务的费用。

输出格式

首先输出最小的总费用。

然后输出 nn 行,每行包含两个整数 aabb,表示第 aa 个员工被分配了第 bb 个任务。

如果有多个最优解,可以输出任意一个。

样例

4
17 8 16 9
7 15 12 19
6 9 10 11
14 7 13 10
33
1 4
2 1
3 3
4 2

提示

最小的总费用是 3333。我们可以通过以下分配方案达到最优:

  • 11 个员工执行第 44 个任务,费用为 99
  • 22 个员工执行第 11 个任务,费用为 77
  • 33 个员工执行第 33 个任务,费用为 1010
  • 44 个员工执行第 22 个任务,费用为 77

总费用为 9+7+10+7=339 + 7 + 10 + 7 = 33

数据范围

  • 1n2001 \le n \le 200
  • 1cij10001 \le c_{ij} \le 1000