Алгоритм C для проблем с разделами
Дан набор целых чисел S:
Как можно разделить множество на k частей так, чтобы сумма каждой части была минимальной? Пожалуйста, дайте также C
реализация.
Пример:
S = {1, 2, 3, 4, 5, 6} and k = 3
Раздел
S1 = {1, 6}
S2 = {2, 5}
S3 = {3, 4}
обладает свойством, что сумма каждого разбиения минимальна.
1 ответ
Решение
Эта страница довольно хорошо описывает проблему и даже предоставляет псевдокод для алгоритма:
http://www8.cs.umu.se/kurser/TDBAfl/VT06/algorithms/BOOK/BOOK2/NODE45.HTM
Определите min, max в данном списке и сформируйте пару. Повторяйте, пока список не будет исчерпан.
Интуитивно кажется, что это обеспечит желаемый результат, но не уверен, хотя!