这更像是一个算法/数学问题,但我希望在 C++ 中实现一个解决方案。
假设我有一个像这样的矩阵,其中的点代表整数:
W X Y Z
A . . . .
B . . . .
C . . . .
D . . . .
如果我必须从每一列中选择一个数字以使每一行最多有一个数字,我将如何产生最小结果?
例如,我可以选择AW BX CY DZ
or AZ BX CY DW
but NOTAW BW CZ DZ
蛮力方法似乎需要 n!计算。有更快的方法吗?最终我想在大小约为 60 的矩阵中添加数字。
此外,所有数字的范围从 0 到 256。