Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++. Дан рюкзак с заданным объемом... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ создание заставки на С++ http://www.cyberforum.ru/cpp-beginners/thread268171.html
Помогите создать заставку на С++ Создать цветную заставку: Вариант 1: Бегущий человечек, скорость которого периодически меняется. Вариант 2: Плывущий пароход, периодически выпускающий пар. ...
C++ Организация работы с файлами. Уважаемые формучане, выручайте! Нужно сдать последний зачет. Задача: В командой строке задается имя входного файла и целое число N. Распечатать последние N строк указанного файла. http://www.cyberforum.ru/cpp-beginners/thread268167.html
C++ Палиндром
Здравствуйте! Наткнулся на такую задачу. Дана строка и нужно посчитать сколько палиндрома можно из нее сделать. Например: ввод: ababc вывод: 13 Хотя бы подкиньте идею как можно ее решить... И еще...
C++ С char* работает, а с string нет.
Как можно сделать так чтобы использовать вместо char* - string. Добавляя #include <string> string name; все равно ошибка 'name' : undeclared identifier
C++ Обработка текста, разделяемого на слова http://www.cyberforum.ru/cpp-beginners/thread268143.html
Задание: Задан текст, содержащий произвольное количество строк, в которых отдельные слова могут разделяться одним или несколькими пробелами и знаками пунктуации (переносы не используются)....
C++ Динамическое создание объектов на ScrollBox в отдельном потоке Возникла проблема. На ScrollBox'e создаются объекты типа TImage один под другим в отдельном потоке, но когда сдвигаешь скроллер пока поток не завершился, точка отсчета меняется и TImage ляпается не... подробнее

Показать сообщение отдельно
IrineK
Заблокирован
01.04.2011, 11:14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#define B 15    //ограничение объема рюкзака по весу
#define k 5     //количество предметов
using namespace std;
 
int n,s;
int a[k]={6,4,3,2,5};   //вес предметов
int c[k]={5,3,1,3,6};   //стоимость 
int W[k+1][B+1];
 
void Print(int s, int n)
{
  if (W[s][n]==0) // максимальный рюкзак для параметров (s,n)
    return;        // имеет нулевую ценность
                   // поэтому ничего не выводим
  else if (W[s-1][n] == W[s][n]) 
    Print(s-1,n);  // можно составить рюкзак без предмета s
  else
  {                               
    Print(s-1,n-a[s]); // предмет s должен
    cout<<s<<endl;     // войти в рюкзак
  }
}
 
int main()
{
for(n=0;n<=B;n++)       // заполняем нулевой ряд
    W[0][n]=0;
for(s=1;s<=k;s++)       // s - максимальный номер предмета, 
{                       // который можно использовать
    for(n=0;n<=B;n++)   // n – объем рюкзака
    {
        W[s][n]=W[s-1][n]; 
        if ( n>=a[s-1] && ( W[s-1][n-a[s-1]]+c[s-1] > W[s][n]) )
            W[s][n] = W[s-1][n-a[s-1]]+c[s-1];
    }
}
cout<<"Array W(s)(n)"<<endl;
for(s=1;s<=k;s++)
{
    for(n=0;n<=B;n++)
        cout<<W[s][n]<<' ';
    cout<<endl;
}
cout<<endl;
cout<<"Rucksack includes these items:"<<endl;
Print(5,15);
cin.get();
return 0;
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.