10
這是更多的算法/數學問題,但我希望在C++中實現一個解決方案。如何在矩陣中添加數字以產生最小結果?
假設我有一個矩陣,像這樣在點表示整數:
W X Y Z
A . . . .
B . . . .
C . . . .
D . . . .
我怎麼會產生最小的結果,如果我必須選擇一個數字在每一欄,使得在大多數一號每一行?
例如,我可以選擇AW BX CY DZ
或AZ BX CY DW
但不是AW BW CZ DZ
蠻力方法似乎取n!計算。有更快的方法嗎?最終我想在大小爲60的矩陣中添加數字。
而且,所有的數字範圍從0到256
確實是n個因子。我的錯。 – Tarik
讓我們假設你以AW,BX或BW,AX開頭:在這兩種情況下,A,B行和W,X列都將被刪除。遞歸思考和緩存結果應該可以做到。見http://en.wikipedia.org/wiki/Dynamic_programming – Tarik
http://en.wikipedia.org/wiki/Hungarian_algorithm 你的問題看起來類似於這個問題。 – user2548103