#P9176. 作业问题(Assignment Problem)

作业问题(Assignment Problem)

作业问题(Assignment Problem)

问题描述

给定一个 N×N N \times N 的矩阵 aij a_{ij} ,求一个排列 p p (即 p0,p1,,pN1 p_0, p_1, \dots, p_{N-1} 0 0 N1 N-1 的一个排列),使得

i=0N1ai,pi\sum_{i=0}^{N-1} a_{i, p_i}

最小。

若存在多个最优解,输出任意一个。

约束条件

  • 1N500 1 \leq N \leq 500
  • aij109 |a_{ij}| \leq 10^9

输入

NN
a00 a01  a0,N1a_{00}\ a_{01}\ \cdots\ a_{0,N-1}
a10 a11  a1,N1a_{10}\ a_{11}\ \cdots\ a_{1,N-1}
:
aN1,0 aN1,1  aN1,N1a_{N-1,0}\ a_{N-1,1}\ \cdots\ a_{N-1,N-1}

输出

XX
p0 p1  pN1p_0\ p_1\ \cdots\ p_{N-1}

X=i=0N1ai,pi X = \sum_{i=0}^{N-1} a_{i, p_i} 是最小总代价。

3
4 3 5
3 5 9
4 1 4
9
2 0 1