![]() |
|
![]() ![]() ![]() |
|
qwertynho |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 8.3.2009 Репутация: нет Всего: нет |
Балансировка камней.
Вам даны рычажные весы. На левой чаше весов лежит один камень с весом W<2N. У вас есть свое множество камней: 1, 2, 4, … , 2N-1. Определите сколькими способами можно расположить некоторые из этих камней на чашах весов так, чтобы уравновесить их. Выведите это значение по модулю D. Входные данные (input.txt): В первой строке записаны три числа: N, L, D. (1<=L<=N<=1000000, 1<=D<=100). Далее во второй строке ровно L символов – двоичная запись числа W. Выходные данные (output.txt): Единственное число – количество способов, взятое по модулю D. Примеры: Input.txt 6 4 6 1000 Output.txt 3 Input.txt 6 6 100 100110 Output.txt 5 Ссылка: acm-test.bsu.by -> Задания -> Теория алгоритмов -> Рекуррентные , только вы не сможете зайти без регистрации. См. исходник, прикреплённый к сообщению. Как можно ускорить процесс? В системе acm-test проходит один тест из 14, на остальные пишет либо ошибка времени выполнения, либо нарушен предел времени. Добавлено через 2 минуты и 47 секунд Вот исходник. Добавлено через 6 минут и 11 секунд Имеется в виду 2 в степени N, а не 2*N. Всё степени, не умножение. Присоединённый файл ( Кол-во скачиваний: 26 ) ![]() |
|||
|
||||
maxdiver |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 29.1.2008 Где: Саратов Репутация: 16 Всего: 18 |
Не читал вашего решения, но вроде можно решить простой линейной динамикой D[L][2], которую можно назвать и рекуррентной формулой.
Это сообщение отредактировал(а) maxdiver - 9.3.2009, 00:35 |
|||
|
||||
maxdiver |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 29.1.2008 Где: Саратов Репутация: 16 Всего: 18 |
Только как там субмитить? Что, просто так зарегаться и открыть нельзя?
|
|||
|
||||
qwertynho |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 8.3.2009 Репутация: нет Всего: нет |
В общем, там на acm-test система "логин - номер зачётки; пароль", она по номеру смотрит, какая группа, и открывает только текущее задание. Без номера, соответственно, ничего не откроется, это я просёк уже после того, как дал ссылку.
Спасибо за совет, я не волшебник, я только учусь ))) Попробую, скажу, что получится! |
|||
|
||||
maxdiver |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 29.1.2008 Где: Саратов Репутация: 16 Всего: 18 |
Что ж, тогда я своё решение не проверю никак. На ручных тестах работает, с идеей вроде всё в порядке, но здесь я, конечно, выкладывать решение не буду.
В длинной арифметике в моём решении вообще нет нужды, так что вы, скорее всего, зашли не в ту сторону. Лучше попытаться понять, как и почему ответ изменяется, когда к числу слева дописывается единичка или нолик, отсюда и получаются довольно простые формулы. |
|||
|
||||
qwertynho |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 8.3.2009 Репутация: нет Всего: нет |
Супер! Сейчас скинул решение, 13 из 14 тестов прошли! В 14ом нарушен предел времени, надо чуть-чуть посмотреть, где и почему это могло произойти. Вы правы, меня понесло совсем не туда, в рекурсию, а не в динамическое программирование.
Помнится, задачу решал, людей через мост надо было переводить, каждый со своей скоростью, одновременно через мост могут идти только двое, дело происходит ночью, а фонарик один. Так там было что-то около ста тысяч человек, естественно, что рекурсия шла лесом. А потом нашёл рекуррентное соотношение, и всё стало очень быстро происходить! А тут сходу тормознул. Правда, писать начал только вчера. С такими темпами сегодня хочется закончить. Ещё раз спасибо! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |