Помогите с решением задачи (динамическое программирование)
Формулировка задачи.
Дано мн-во целых неотрицательных чисел (проще говоря какой-то массив размера 'n' из натуральных чисел) и натуральное число 'm'. Необходимо найти все подмн-ва данного мн-ва, сумма элементов которых будет равна данному числу 'm' (т.е. найти все разложения данного числа по элементам данного массива).
Например:
Пусть дан массив A={1,3,2,9,6} (n=5) и пусть m=6. Очевидно, что искомыми мн-ми являются:
А1={1,3,2} и
A2={6}
(1+2+3=6, 6=6)
Вот такая задача. Надеюсь всё подробно и понятно. Сразу хочу выразить огромную благодарность всем, кто откликнется. Если кто-то решит предоставить код программы, то желательно на Delphi.
|