, если у нас есть n списков, нам нужно выбрать число из каждого списка, выбранный номер не может быть выбран снова, как сделать выбор, чтобы получить самую большую сумму n выбранных номеров? , например.алгоритм: выберите число из каждого списка, найдите самую большую сумму
list1: 4 5 7.
list2: 3 5 7.
list3: 1 5
если выбрать 7 из list1, наибольшее количество можно выбрать в списке 2 является 5 (потому что тот же номер не может быть выбран в два раза), если выбрать 5 из list2, можно выбрать только 1 из List3, поэтому сумма равна 7+5+1=13
это НЕ лучший выбор. однако, если мы выберем 4 из списка1, 7 из списка2, 5 из списка3, сумма равна 4+7+5=16
Есть ли алгоритм, чтобы найти лучший способ сделать выбор, чтобы получить самую большую сумму? Решение должно быть идеальным.
Возможно, алгоритм Knuth's «Dancing Links»? – comocomocomocomo
Это может быть NP-трудная проблема, которая всегда будет оптимально решаться. ваше решение должно быть совершенным или просто нужно быть хорошим? – Wug
Можно ли считать, что каждая строка уже отсортирована? – jamylak