0 / 0 / 0
Регистрация: 06.06.2023
Сообщений: 9
|
|
1 | |
Олимпиадная задача про НОД06.06.2023, 18:15. Показов 2857. Ответов 34
Метки нет (Все метки)
Леброну на уроке рассказали про НОД (наибольший общий делитель) и дали задачку.
В задачке давалось два числа x и y. Леброну надо было повторять следующую операцию, пока x и y больше или равны 1. Заменим x и y на x−t и y−t соответственно, где t — НОД(x, y). В задаче надо найти количество операций, которые будут сделаны. Входные данные Первая строка содержит два целых числа: x,y (1≤x,y≤1012). Выходные данные Выведите ответ на задачу. Пример входные данные 30 27 выходные данные 9 Пробовал сделать в тупую - ожидаемо не проходит по времени. Больше идей нет
0
|
06.06.2023, 18:15 | |
Ответы с готовыми решениями:
34
Задача про НОД Задача про НОД Олимпиадная задачка про Роботов олимпиадная задачка про брак на заводе |
419 / 206 / 64
Регистрация: 13.05.2020
Сообщений: 385
|
||||||
06.06.2023, 18:55 | 2 | |||||
Алгоритм Евклида:
1
|
случайный прохожий
3071 / 2107 / 630
Регистрация: 20.07.2013
Сообщений: 5,656
|
|
06.06.2023, 19:00 | 3 |
Как считается количество операций? Когда мы вычитаем числа (делаем замену) - это 1 операция?
Вычисление НОД не считается операцией? И что значит "делал в тупую"? Свои попытки можно продемонстрировать. Также в условии видимо число-ограничение не 1012, а 1012 (скорей всего).
1
|
419 / 206 / 64
Регистрация: 13.05.2020
Сообщений: 385
|
|||||||||||
06.06.2023, 19:12 | 4 | ||||||||||
Его оригинальное решение через разность двух чисел (полагаю именно оно нужно вам):
Тогда:
1
|
0 / 0 / 0
Регистрация: 06.06.2023
Сообщений: 9
|
|
06.06.2023, 19:32 [ТС] | 5 |
gunslinger, одна операция это:
Заменим x и y на x−t и y−t соответственно, где t — НОД(x, y). В тупую я имел ввиду ровно так, как по условию. Вычитать НОД, прибавлять 1 к счетчику пока каждое из чисел больше или равно 1. Такое решение работает медленно и не заходит по времени. Да, 10^12
0
|
419 / 206 / 64
Регистрация: 13.05.2020
Сообщений: 385
|
|
06.06.2023, 19:47 | 6 |
А если поделить числа на НОД и выбрать наименьшее из них, это должно быть ответом.
1
|
случайный прохожий
3071 / 2107 / 630
Регистрация: 20.07.2013
Сообщений: 5,656
|
|||||||||||
06.06.2023, 19:51 | 7 | ||||||||||
Tonendd, понятно. Tanya2007, как вариант (что-то такое и использовал).
Код для НОД можно взять отсюда Нахождения НОД (аналогичен примеру из поста №2 в этой теме). В итоге получилось так:
тут
или здесь
1
|
0 / 0 / 0
Регистрация: 06.06.2023
Сообщений: 9
|
|
06.06.2023, 20:05 [ТС] | 8 |
gunslinger, Tanya2007 спасибо большое за помочь, но увы неправильный ответ на одном из тестов (не знаю каком)
0
|
419 / 206 / 64
Регистрация: 13.05.2020
Сообщений: 385
|
|
06.06.2023, 20:09 | 9 |
Tonendd,
тогда весь код в студию) видимо не учитывается какая-то исключительная ситуация.
0
|
0 / 0 / 0
Регистрация: 06.06.2023
Сообщений: 9
|
||||||
06.06.2023, 20:18 [ТС] | 10 | |||||
Tanya2007 я просто взял код от gunslinger и добавил ввод и вывод.
0
|
419 / 206 / 64
Регистрация: 13.05.2020
Сообщений: 385
|
|
06.06.2023, 20:21 | 11 |
Tonendd, может в тестах присутствуют отрицательные значения х и у? Тогда надо делать проверку на правильность ввода.
0
|
0 / 0 / 0
Регистрация: 06.06.2023
Сообщений: 9
|
|
06.06.2023, 20:22 [ТС] | 12 |
Tanya2007 вряд-ли, ограничения даны в условии
0
|
419 / 206 / 64
Регистрация: 13.05.2020
Сообщений: 385
|
|
06.06.2023, 20:25 | 13 |
Tonendd, если не секрет, где тесты проводите?
0
|
случайный прохожий
3071 / 2107 / 630
Регистрация: 20.07.2013
Сообщений: 5,656
|
||||||
06.06.2023, 20:26 | 14 | |||||
Tonendd, для начала лучше (наверно) использовать unsigned long long вместо long long (но это не точно).
И замечание Tanya2007, возможно, не лишено смысла. Но в любом случае ошибка в логике плюс не учтен приоритет операций (строка №15 кода). Должно быть что-то вроде
0
|
0 / 0 / 0
Регистрация: 06.06.2023
Сообщений: 9
|
|
06.06.2023, 20:30 [ТС] | 15 |
gunslinger ой, случайно) но ни то, ни другое не помогло Tanya2007 в группе кружка на кодфорсисе
0
|
случайный прохожий
3071 / 2107 / 630
Регистрация: 20.07.2013
Сообщений: 5,656
|
|
06.06.2023, 20:37 | 16 |
Тогда не знаю. Раз тест скрыт, то и гаданием на кофейной гуще заниматься смысла не вижу.
Там хоть суть проблемы показывается (ошибка вычислений, не проходит по времени либо еще что) или нет?
0
|
0 / 0 / 0
Регистрация: 06.06.2023
Сообщений: 9
|
|
06.06.2023, 20:39 [ТС] | 17 |
Понятно. Ну ладно, все равно спасибо) Известно только что неправильный ответ и все
0
|
случайный прохожий
3071 / 2107 / 630
Регистрация: 20.07.2013
Сообщений: 5,656
|
|
06.06.2023, 20:57 | 18 |
Не за что. Ошибки вроде быть не должно.
Если только убрать слагаемое Код
num - 1 Код
min / num Как вариант, при проверке может происходить (каким-то образом) не целочисленное деление и из-за этого результат выходит ошибочным (но это лишь предположение).
0
|
723 / 683 / 110
Регистрация: 29.05.2015
Сообщений: 4,117
|
||||||
07.06.2023, 11:04 | 19 | |||||
Попробуй без рекурсии:
1
|
gunslinger
|
07.06.2023, 12:42
Олимпиадная задача про НОД
#20
|
Не по теме: alexu_007, ТС говорил, что у него выскакивает ошибка вычислений (по какой-то не очень понятной причине).
0
|
07.06.2023, 12:42 | |
07.06.2023, 12:42 | |
Помогаю со студенческими работами здесь
20
C++. Олимпиадная задача Олимпиадная задача Олимпиадная задача Задача на дп (олимпиадная) Олимпиадная задача Олимпиадная задача Олимпиадная задача Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
NoSQL базы данных: что это такое и какие существуют
bytestream 22.01.2025
В современную эпоху цифровой трансформации объемы данных растут экспоненциально, создавая новые вызовы для традиционных систем управления базами данных. NoSQL (Not Only SQL) представляет собой. . .
|
Обновление исследования от команды MCM (январь 2025 г.)
Programma_Boinc 22.01.2025
Обновление исследования от команды MCM (январь 2025 г. )
Мы продолжаем изучать молекулярные сигнатуры, связанные с раком легких, с текущим фокусом на GCM1, факторе транскрипции, участвующем в. . .
|
Как работать с Kafka в Go (Golang)
bytestream 22.01.2025
Apache Kafka представляет собой распределенную платформу потоковой передачи данных, которая произвела революцию в области обработки событий и интеграции микросервисов. Эта система, изначально. . .
|
Как использовать RabbitMQ в Go (Golang)
bytestream 22.01.2025
RabbitMQ представляет собой надежный и широко используемый брокер сообщений, который играет ключевую роль в построении современных распределенных систем и микросервисной архитектуры. В основе работы. . .
|
Как преобразовать список списков в простой список в Python
bytestream 22.01.2025
При работе с Python разработчики часто сталкиваются с необходимостью обработки сложных структур данных, среди которых особое место занимают вложенные списки. Эти структуры представляют собой списки,. . .
|
Что такое GUID / UUID и как их создать
bytestream 22.01.2025
В мире разработки программного обеспечения существует постоянная потребность в уникальной идентификации объектов, записей и ресурсов. Эта задача становится особенно актуальной в распределенных. . .
|
Как добавить пустую директорию в репозиторий Git
bytestream 22.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с ситуацией, когда необходимо сохранить пустую директорию в репозитории. Данная задача может показаться простой на первый. . .
|
Как валидировать адрес email в JavaScript
bytestream 22.01.2025
JavaScript, как основной язык веб-разработки, предоставляет разработчикам множество инструментов для реализации эффективной валидации email-адресов. От простых встроенных решений до сложных. . .
|
Как заменить все вхождения подстроки в JavaScript
bytestream 22.01.2025
Строки в JavaScript представляют собой неизменяемые последовательности символов, что делает их обработку особенно интересной с точки зрения оптимизации и выбора правильного подхода к решению задач.
. . .
|
Управление версиями пакетов в Node.js. В чем разница между тильдой (~) и кареткой (^) в package.json
bytestream 22.01.2025
В современной разработке программного обеспечения управление версиями пакетов играет ключевую роль в обеспечении стабильности и надежности проектов. Node. js, как одна из самых популярных платформ для. . .
|
Аутентификация на сайте с помощью формы
bytestream 21.01.2025
В современном цифровом мире безопасная аутентификация становится краеугольным камнем защиты веб-приложений и пользовательских данных. Каждый день миллионы людей используют различные онлайн-сервисы,. . .
|
Как получить индекс в цикле for в Python
bytestream 21.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только получить доступ к элементам последовательности, но и знать их позицию в процессе итерации. Индексация в циклах. . .
|