如果我们有n个列表,我们需要从每个列表中选择一个数字,所选择的数字不能再被选择,如何进行选择以获得最大的总和n选定的号码? 例如算法:从每个列表中选择一个数字,找到最大数额
list1: 4 5 7.
list2: 3 5 7.
list3: 1 5
如果我们选择7从list1的,最大的数,我们可以选择在列表2是5(因为同样数量不能被选择两次),如果我们从列表2选择图5,我们只能选择1从项目list3,所以总数是7+5+1=13
这不是最好的选择。但是,如果我们从list1中选择4,从list2中选择7,从list3中选择5,总和为4+7+5=16
是否有一种算法可以找到最佳方法进行选择以获得最大总和? 解决方案应该是完美的。
也许Knuth的“跳舞链接”算法? – comocomocomocomo 2013-03-22 04:48:43
这可能是一个难以解决问题的NP难题。你的解决方案必须是完美的还是只需要做得好? – Wug 2013-03-22 04:53:48
我们可以假设每一行已经排序? – jamylak 2013-03-22 05:12:56