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

Динамическое программирование. Рыцарь. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ подскажите аналог конструкции pascal в c http://www.cyberforum.ru/cpp-beginners/thread221841.html
Начал изучать язык Си без плюсов. подскажите, пожалуйста, аналог такой конструкции pascal if a in then в языке Си
C++ очень надо к 6 часам очень гадо к 6 часам Класс n-мерных векторов Базовый класс (координаты начала и конца вектора Совет: реализовать дополнительный класс NPoint, содержащий в виде массива координаты n-мерных точек, а... http://www.cyberforum.ru/cpp-beginners/thread221836.html
C++ Вычислить: y=1!+2!+3!+…+n! (n>0).
Вычислить: y=1!+2!+3!+…+n! (n>0). Всем плюсану!
Даны действительные числа А,В,С . Найти те из них которые не принадлежат заданному отрезку [0; 2]. C++
Даны действительные числа А,В,С . Найти те из них которые не принадлежат заданному отрезку . кто напишет правильно программу тому "+"
C++ Сохранение информации в файле и считывание из него http://www.cyberforum.ru/cpp-beginners/thread221828.html
В файле сохраняется информация о деятельности некоторых подразделений: наименование подразделения, количество сотрудников, прибыль, полученная за текущий квартал. Определить лучшее подразделение с...
C++ C++ Блок схема Всем доброго времени суток. Есть проблема, которую я сам решить не могу из-за того, что ничерта не понимаю. Суть ее в следующем, есть код программы, написанной в С++, к этой программе нужна блок... подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
17.01.2011, 09:37
Примерно так:
[C++] ...
for(j=0;j<N;i++)
mas[1][j]=random b[k]; /*b[k] - структура, которая хранит значения для комнаты, в данном варианте одномерный массив.*/
for (i=1;i<M;i++)
mas[i][j]=?[/C++]
Нет, не так:
Допустим массив со значениями комнат: matrix[n][m]
Структура, со значения комнат такая:
struct room{
vector<int> v;
};
Создаем массив:
room field[n][m];
Далее запоняем первую строку field[][]:
for(int i=0; i<m; i++)
field[0][i]->v.push_back(matrix[0][j]);
Далее так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(int i=0; i<n-1; i++)
    for(int j=0; j<m; j++)
    {  
        vector<int>::iterator y;
        for(y=mas[i][j]->v.begin(); y!=mas[i][j]->v.end(); ++y)
        {
             mas[i+1][j]->v.push_back(matrix[i+1][j]+*y);
             if(j>0)
                mas[i+1][j-1]->v.push_back(matrix[i+1][j-1]+*y);
            if(j<m-1)
                mas[i+1][j+1]->v.push_back(matrix[i+1][j+1]+*y);
       }
   }
После этого в последней строке массива mas[n-1][i], в каждом элементе в векторе v будут находится все возможные значения набранных сумм.
Перебирайте их, находите максимальное значение.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru