Как стать автором
Обновить
25
0
Михаил Май @goldenalfer

Пользователь

Отправить сообщение
Ясно, у меня все через Африку. Думаю, что вам стоит такие точки как (1) на вашем рисунке, вообще не отображать, так нагляднее получится
Никогда не задумывался, что данные с хабры ко мне летят через Африку
Алексею, читателю хабры, удалось получить лучшее время (0.052) среди всех пользователей сайта uva.onlinejudge.org. Вот его решение. Мои поздравления!
Он также написал генератор тестов, возможно кому-нибудь понадобится.
Обещаю исправиться
Благодарю за то, что открыли мне глаза на некоторые особенности языка C++. Теперь мне удалось ускорить второй вариант решения до Accepted (0.108)
Честно говоря, я сначала полагал, что такое решение должно быть значительно быстрее чем оба варианта из поста, но это оказалось не так. Думаю, что тут все дело в «не очень удачных тестовых наборах» под такой подход.
Я рад, что вы так быстро пришли к выводу, что с нашими граничными условиями на числа, можно обойтись не только без сортировки, но и без поиска. Но спешу вас огорчить: я проверял такой подход, он медленнее, чем первый вариант. Мою реализацию вашего подхода на C++ можно скачать тут и проверить. Accepted (0.488)
Предполагаю, что такой подход дает бешеный прирост производительности в случаях, когда у нас много разных чисел от 1 до 10000, но когда чисел мало, а разброс между ними большой (например два числа: 1 и 10000) и Q стремится к максимуму, то все преимущества сразу пропадают, потому что независимо от количества разных чисел нам все равно приходится работать с массивом в 10000 элементов.
По большому счету, не важно с какого сайта брать задачи. Только тем, кто готовится к ACM, лучше решать задачи на английском языке
В школе не было бесконечной доски. Но ваше замечание очень кстати, я даже не задумывался о бесконечных досках…
Вы молодец, даю ссылку на вас в посте.
Благодарю.
Магические константы и не совсем логичный код сделаны специально, чтобы ускорить работу алгоритма. Тем более, что с C++ я, мягко говоря, почти не знаком и изучаю его параллельно со своим хобби. Но я обещаю совершенствоваться со временем. Кстати, отмечу что эта задача не такая уж и очевидная, во всяком случае для меня.
Очень не сложная задачка, алгоритм поиска очень простой: Начиная от начальной точки помечаете не помеченные клетки доски, в которые можно добраться в 1 шаг цифрой 1, потом все клетки, в которые можно добраться конем из клеток с цифрой 1 помечаете цифрой 2 и т.д. В итоге получаете доску с размеченным числом шагов до любой клетки. По этим цифрам несложно было пройти путь обратно от конечной точки до начальной.
Сделать можно, но вот чтобы он стал действительно популярным, мне кажется, необходима магия. Не всегда, но в большинстве случаев.
Мне кажется, что сегодня, если ты делаешь социальный продукт без большого стартового пинка в виде баксов, весь твой успех на много процентов зависит от случайности: будь то тебя случайно Джобс пропиарил, или по телевизору показали, или НЛО сделала инъекцию в мозг всем жителям планеты Земля с информацией о твоем проекте…
Проверка проводится по ряду тестов на сервере. Есть ограничение по времени работы программы (3 секунды), ну и наверное ограничение на память, хотя в условии об этом не говорится. Эта задача действительно достаточно простая, поэтому тут трудно превысить лимит времени или памяти. Здесь важно учесть все возможные подводные камни.
Рекомендую вам свое решение перекинуть на C++, java или Pascal и отнести на проверку, сразу станет ясно насколько оно удачно.
Я хотел развлечь тех, кому немного скучно, а клавиатура «чешется». Поверьте, не у всех такой скилл программирования олимпиадных задач, как у вас. Тем более задачу я выбирал случайным образом.
Есть подозрение, что ваша задача решается только полным перебором. Более красивых решений, пока, к сожалению, вывести не удается
Может стоит сами советы выделить как-то иначе, а то такое ощущение, что их заминусовали и я их сначала не заметил
Отличный вариант решения, большое спасибо. Сначала пугал алгоритм поиска победителя по вашему массиву, но разобрался и все встало на свои места.
1С — мог кое-где ошибиться, но смысл приблизительно таков

Информация

В рейтинге
Не участвует
Откуда
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Дата рождения
Зарегистрирован
Активность