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