Алгоритм суммы подмножества

Я работаю над этой проблемой:

Задача Subset Sum принимает в качестве входных данных набор X = {x1, x2,…, xn} из n целых чисел и еще одно целое число K . Проблема состоит в том, чтобы проверить, существует ли подмножество X ' из X , сумма элементов которого равна K , и находит подмножество, если оно есть. Например, если X = {5, 3, 11, 8, 2} и K = 16 , тогда ответ будет ДА , поскольку подмножество X '= {5, 11} имеет сумму 16 . Реализуйте алгоритм для суммы подмножества, время выполнения которого составляет не менее O (nK) .

Сложность уведомления O (nK) . Я думаю, что динамическое программирование может помочь.

Я нашел алгоритм экспоненциального времени, но он не помогает.

Может ли кто-нибудь помочь мне решить эту проблему?

45
задан Cody Gray 10 August 2017 в 10:32
поделиться