Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2010, 03:39   #1
grimm_jow
Пользователь
 
Регистрация: 27.01.2010
Сообщений: 25
Лампочка монетки на шахматной доске!

Вот собственно задача:

Дана доска N*M, в каждой из её клеток лежит некое кол-во золотых монет.
Начинает игрок в левом нижнем углу доски. Нужно достичь верхнего правого угла, собрав максимум монет. Движение только вверх и вправо.

Пример входных данных:
0 8 4 0
5 1 2 2
0 3 1 9

Пример вывода программы:
18 ururr
(что означает 18 монет и путь up-right-up-right-right).


Хотелось бы попросить уважаемых програмеров не давать сразуже код с решением а подсказать с чего начать, как подойти к решению данной задачи, т.к. понастоящему понять код можно только если сам его написал

Вот тут кое-какие наброски.... правильно нет ??

#include <QtCore/QCoreApplication>
#include <QtCore/qDebug>
#define N 3
#define M 4

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

int mx[N][M];
//Generate marix
qDebug()<<"Matrix generate";
qDebug()<<"\n";
for (int i=0;i<N;i++)

{
for (int j=0;j<M;j++)
{

mx[i][j]=rand()%10;
printf("%3d",mx[i][j]);

}
qDebug()<<"\n";
}

qDebug()<<"\n";
qDebug()<<"Sobiraem monetki";
qDebug()<<"\n";

int start;
int up;
int right;

start=mx[2][0];

for (int i=0;i<N;i++)
{
for (int j=0;j<M;j++)
{
up=mx[N-2+i][j];
right=mx[j][M-2+j];
if (start+up>start+right)
{
start+up;
qDebug()<<start+up;

}
else
{
start+right;
qDebug()<<start+right;
}

}
}


return a.exec();
}

Последний раз редактировалось grimm_jow; 31.01.2010 в 03:40. Причина: натупил
grimm_jow вне форума Ответить с цитированием
Старый 31.01.2010, 03:43   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Гугли "динамическое программирование".
Carbon вне форума Ответить с цитированием
Старый 31.01.2010, 10:27   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

на форуме:
сюда сходите:
http://www.programmersforum.ru/showthread.php?t=82696

а потом по ссылкам в этой теме из пост #9

p.s. там разбирается алгоритм решения подобных задач
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание своего класса в Delphi 7 - фигуры для шахматной доски electric Компоненты Delphi 18 24.10.2013 15:06
монетки Alex26RusLink Помощь студентам 1 26.10.2009 12:42
Поиск пути на шахматной доске ходом ферзя A!eI{S@nDrA Помощь студентам 2 16.06.2009 09:51