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

Динамическое програмирование - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Посоветуйте литературу по объектам и классам http://www.cyberforum.ru/cpp-beginners/thread87055.html
Посоветуйте литературу по объектам и классам...
C++ потоки Задали мне задачку решить которую я не смог. Задача такая: написать код (на с++), который продемонстрирует различие действия endl и \n, чтоб студент видел как endl очищает буфер. Возможно ли вообще... http://www.cyberforum.ru/cpp-beginners/thread87052.html
C++ Латинский квадрат
помогите плиз написать програму где латинским квадратом порядка n называется матрица, каждая строка и каждый столбец содержат все числа от 1 до n. Проверить, является ли заданная во внешнем файле...
C++ одномерные массивы и указатели
в одномерном массиве, состоящем из n вещественных элементов, вычислить: сумму отрицательных элементов массива
C++ Используя символ *, вывести на экран ромб шириной и высотой n символов http://www.cyberforum.ru/cpp-beginners/thread86978.html
Помогите с такой прогой. Вначале требуется проверить, что значение n нечетное и больше 1, но это-то понятно, и используя символ *, вывести на экран ромб шириной и высотой n символов P.S. общий...
C++ как бы упростить а то намудрил чёт тут #include <math.h> #include <iostream> using namespace std; int main (void) { double x,y,z,p,p1,p2,p3,m,r,r1,r2,r3,t=0,o=0,kr=0; // t- счётчик while (kr<=3)... подробнее

Показать сообщение отдельно
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
18.01.2010, 16:55
вот я нарыл чтото о Knapsack может быть поможет:
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
#include <vector>
#include <limits>
 
int knapsack2(const std::vector<int>& wts, const std::vector<int>& cost, int W)
{
    size_t n = wts.size();
    std::vector<std::vector<int> > dp(W + 1);
    for (int i = 0; i <= W; i++)
    {
        dp[i].resize(n + 1);
        dp[i][0] = 0;
    }
    for (size_t i = 0; i <= n; i++)
    {
        dp[0][i] = 0;
    }
    for (size_t j = 1; j <= n; j++)
    {
        for (int w = 1; w <= W; w++)
        {
            if (wts[j-1] <= w)
            {
                dp[w][j] = std::max(dp[w][j - 1], dp[w - wts[j-1]][j - 1] + cost[j-1]);
            } else
            {
                dp[w][j] = dp[w][j - 1];
            }
        }
    }
    return dp[W][n];
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru