«Алгоритмы Октябрь» (задача о рюкзаке)

Описание проблемы:

 

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;
} 

рекомендация

отwww.cnblogs.com/Whgy/p/12301413.html