Имя пользователя:
Пароль:
 

Название темы: помогите решить задачу
Показать сообщение отдельно

редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


При таких малых k достаточно просто втупую промоделировать процесс сгибания листа. Или вы не можете?

Добавлено:

Что бы понять как моделировать. Лучше всего взять обычный лист и посмотреть на его примере.

Возьмите лист, сложите его k раз по вашему алгоритму (пусть для определённости k будет чётным). Пронумеруйите страницы. В результате мы, по сути, получили массив размера 1х1х2^k заполненный числами. Теперь разверните лист по вертикали. Получился массив размерности 2х1х2^(k-1). Внимательно посмотрите как он получился из предыдщего (половина элементов осталась прежней и на прежних местах, а вторая довольно просто отразилась). Теперь разверните лист по горизонтали. Получился массив 2х2х2^(k-2). Он тоже легко получается по предыдущему (опять, половина элменетов остаётся на своих местах, а вторая отражается). Вот так ваше программа должна разворачивать лист до тех пор пока не останется массив размерности AxBx2. По нему уже можно построить ряд ответа. Не самый эффективный, но очень простой алгоритм.

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

-------
http://ivank.ru


Отправлено: 18:32, 25-08-2004 | #2

Название темы: помогите решить задачу