В принципе, учитывая отсортированный список положительных ненулевых чисел, скажем, {1, 4, 5}, измените одно число в списке, чтобы максимально использовать различные комбинации. Вышеприведенное дает 1, 4, 5, 6, 9, 10, то есть шесть комбинаций. Если бы мы изменили 4 на 2, значит, у нас есть {1, 2, 5}, мы получим 1, 2, 3, 5, 6, 7, 8, то есть семь комбинаций.
Мне нужно найти число x, чтобы добавить к одному номеру списка, чтобы максимизировать количество комбинаций. x должно быть наименьшим значением abslout, мы можем как добавить, так и вычесть.
Я сделал это с использованием грубой силы путем перечисления, которое выполняется во много раз экспоненциальное время. Таким образом, это не представляется возможным для больших проблем. Теперь мне нужно сделать это быстро.
Просто проверка количества комбинаций - это экспоненциальное время? И я должен найти точное оптимальное решение.
Какими будут ключевые слова для решения этой проблемы? Я попытался найти повторение, поэтому я мог бы использовать динамическое программирование и какую-то ветвь и ограничивать ее, но это бесполезно.
Я рассмотрел такие проблемы, как режущий станок, подмножество sum и множество других комбинаторных задач оптимизации, чтобы увидеть, могу ли я найти некоторые идеи. Но я этого не понимаю. Простое подтверждение решения - это экспоненциальное время.