Алгоритм C для проблем с разделами - PullRequest
4 голосов
/ 22 марта 2011

Дано множество целых чисел S:

Как можно разбить множество на k частей так, чтобы сумма каждой части была минимальной?Пожалуйста, укажите также реализацию C.

Пример:

S = {1, 2, 3, 4, 5, 6} and k = 3

Раздел

 S1 = {1, 6}
 S2 = {2, 5}
 S3 = {3, 4}

обладает тем свойством, что сумма каждого раздела минимальна.

Ответы [ 2 ]

2 голосов
/ 22 марта 2011

Эта страница достаточно хорошо описывает проблему и даже предоставляет псевдокод для алгоритма:

http://www8.cs.umu.se/kurser/TDBAfl/VT06/algorithms/BOOK/BOOK2/NODE45.HTM

1 голос
/ 07 июня 2019

Определите min, max в данном списке и сформируйте пару. Повторяйте, пока список не будет исчерпан.

Интуитивно кажется, что это обеспечит желаемый результат, но не уверен, хотя!

...