![]() |
|
Модераторы: Poseidon |
![]()
|
|
| tymrfik |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 20.1.2011 Репутация: нет Всего: нет |
За долгую и верную службу Рыцарю позволено набрать сокровищ в сокровищнице своего сеньора. Сокровищница имеет форму прямоугольника, состоящего из отдельных "клеток" — прямоугольных комнат. В каждой комнате хранятся сокровища известной стоимости. Рыцарь может вынести сколько угодно сокровищ, но пройдя через сокровищницу только один раз. Он может начать с любой комнаты вдоль внешней северной стены сокровищницы (выбор комнаты — за рыцарем). На каждом шаге он может переходить в одну из трех "южно-соседних" комнат: южную, юго-восточную или юго-западную. Из комнат, граничащих с восточной или западной внешней стеной, возможны только два направления выхода. Закончить путь Рыцарь должен в любой из комнат на южной внешней стороне сокровищницы.
У Рыцаря есть план сокровищницы — прямоугольная таблица, в которой обозначены стоимости сокровищ каждой комнаты. Направлению с севера на юг соответствует направление сверху вниз на карте. По заданной карте нужно найти один из допустимых путей, обеспечивающих наибольшую возможную сумму сокровищ. Вход. Первая строка в тексте содержит два числа N и М, обозначающие "ширину" и "высоту", далее М строк по N неотрицательных целых чисел в каждой — стоимости сокровищ соответствующих комнат. Размеры сокровищницы не более чем 80x80 комнат. Выход. В первой строке указывается номер (по порядку с запада на восток) комнаты северного ряда, из которой нужно начать движение, во второй — строка символов, означающих на¬правление очередного перехода (S — на юг, Е — на юго-восток, W — на юго-запад); в третьей — полученная максимально возможная суммарная стоимость. Если есть несколько путей с максимальной суммой, вывести любой из них.
}
Надо из этого сделать мемоизацию! Прошу помогите?!!!! Вроде нужно переписать функцию void find, а для это как я понимаю необходимо и двумерный массив задавать без случайных чисел (с этим справилась), а вот как тут сделать с МЕМОИЗАЦИЕЙ?!!!!!! Срочно пожалуйста помогите! |
||||
|
|||||
| tymrfik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 20.1.2011 Репутация: нет Всего: нет |
Ладно, забудем про тот код, он мне пока не пригодился. ПОМОГИТЕ ПОЖАЛУЙСТА С САМОЙ РЕКУРСИЕЙ. Вот что я думаю о том как должна выглядеть просто рекурсия, вроде псевдокода:
Благодарна буду за идеи!!! Прошу!!! Подскажите как быть с самыми первыми ячейками [0][0], [0][1], .....[0][m-1]?!!!!! их нужно сначала перебирать через цикл и считать для них сумму?!!!! Помогите с кодом!!!! (До утра успеть бы. Зачет.) ЕЩЕ Волнующие вопросы: как быть с первыми ячейками таблицы? и саму функцию нахождения максимума потом как подключить, т.е через класс?! Это сообщение отредактировал(а) tymrfik - 26.1.2011, 19:20 |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |