Учитывая набор целых чисел и пороговое значение T, разделите коллекцию на максимально возможное количество групп, сумма которых> = T - PullRequest
1 голос
/ 19 апреля 2020

Учитывая набор целых чисел и пороговое значение T, разделите коллекцию на максимально возможное количество групп, сумма которых> = T.

Остальные целые числа (сумма которых

Ограничения:

  • длина списка <= 1,000 </li>
  • значений и T <= 1,000,000 </li>

Есть ли алгоритм для этой задачи за полиномиальное время?

Например, с учетом [25,25,25,50,50,50,10] и порогом T = 70 он должен вернуть:

[25,50]
[25,50]
[25,50]
Remaining: [10]

Выбор [25,25,25] в качестве одна из групп позволит сформировать только еще одну группу [50,50], а остальные значения будут [50,10]. Две группы не являются оптимальным количеством групп, поэтому это решение будет неверным.

1 Ответ

0 голосов
/ 20 апреля 2020

Для этого не существует алгоритма полиномиального времени, поскольку он содержит в качестве особого случая np-complete Проблема разбиения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...