Описание проблемы:
2. Анализ: Вы можете знать встретить рекурсивный
Определения: B (I, J): Есть несколько представителя пунктов я могу украсть
J представляет собой левое, сколько мешка пространства
Например:
Если B (4,20) от имени: 4 кражи предметов, а также оставшееся пространство рюкзака 20 ---> серия расчетов ----> 26
3. Определить массив B:
4. Код показывает:
#include <iostream> #include <iomanip> #include <math.h> #include <string.h> #define N 6 #define Вт 21 используя патезрас; // В [I] [J]: я представитель нескольких элементов также может украсть // J представляет левое, сколько мешка пространства INT B [N], [Вт] = {0}; Int W [6] = {0, 2, 3, 4, 5, 9}; // вес INT v [6] = {0, 3, 4, 5, 8, 10}; // Значение beibao недействительными () { ИНТ к, с; для (к = 1; к <N; K ++) {// 5-го товара для (с = 1; с <Вт; C ++) { если (ш [к]> с) {// к-й элемент превышает тяжелый мешок пространства с, не воруют В [к] [с] = В [K-1] [с]; } Еще { // к-красть вещи INT значение1 = В [K-1] [CW [K]] + V [K]; // не украсть K пунктов INT значение2 = В [K-1] [с]; В [к] [с] = значение1> = значение2? значение1: значение2; } } } } Int основных (недействительными) { beibao (); соиЬ << В [5] [20] << епсИ; return 0; }