|
0 / 0 / 0
Регистрация: 09.10.2023
Сообщений: 1
|
|||||||
Задача "Светофоры" с codeforces. Код слишком медленный09.10.2023, 14:38. Показов 1214. Ответов 5
Метки нет (Все метки)
Выходит ошибка на 9 тесте, указывающая что программа слишком медленная. Как ускорить код?
Сама задача - https://codeforces.com/gym/102386/problem/H
0
|
|||||||
| 09.10.2023, 14:38 | |
|
Ответы с готовыми решениями:
5
Слишком медленный запуск программы Слишком медленный алгоритм искусственного интеллекта игры Балда |
|
Вездепух
12936 / 6803 / 1821
Регистрация: 18.10.2014
Сообщений: 17,215
|
||
| 10.10.2023, 05:31 | ||
|
--- Пусть исходные значения на счетчиках равны a и b (a >= b). И пусть d = a - b. По мере того, как счетчики убывают, разность между ними постоянна и равна d. В моменты, когда текущее значение а делится на текущее значение b, будет выполняться a = bk для некоего k. То есть в каждый такой момент d = bk - b = b(k-1). То есть каждому делителю d (не превышающему исходное b) соответствует какая-то комбинация делящихся друг на друга счетчиков. Таким образом, ответ задачи: количество делителей d, не превышающих b. А чтобы найти их, я думаю, обычный перебор до корня из d будет достаточно быстрым.
1
|
||
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||
| 10.10.2023, 09:04 | ||
|
(например, при входных данных 50 и 40 ответ 4, а это больше корня из разницы. (хотя, возможно, вопрос в том куда округлить?) Добавлено через 1 минуту
0
|
||
|
Вездепух
12936 / 6803 / 1821
Регистрация: 18.10.2014
Сообщений: 17,215
|
|||
| 10.10.2023, 09:07 | |||
|
При входных данных 50 и 40 разница равна 10. То есть перебор до корня из 10 проверит три числа (1, 2, 3), обнаружит две пары делителей (1, 10) и (2, 5) и засчитает все четыре делителя, ибо все они меньше 40. Ответ - 4.
0
|
|||
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||
| 10.10.2023, 09:15 | ||
|
(20, 10) (15, 5) (12, 2) (11, 1) поэтому я не могу сообразить о каких засчитанных делителях вы говорите.
0
|
||
|
Вездепух
12936 / 6803 / 1821
Регистрация: 18.10.2014
Сообщений: 17,215
|
|||
| 10.10.2023, 09:35 | |||
|
Как я сказал выше, нам нужно найти все делители разницы, то есть все делители 10 (= 50-40). Эти делители и будут определять наши пары. (Второе число в паре равно найденному делителю +10). Делители 10 мы найдем перебором кандидатов от 1 до 3. Помним, что каждый кандидат может дать нам два делителя. В результате мы найдем делители 1, 10, 2, 5. Все они меньше 40. То есть мы получаем именно ваши пары, приведенные вами выше, четыре штуки: (1, 11) (10, 20) (2, 12) (5, 15), P.S. Если бы нам не нужно было отсеивать делители по этому критерию, то есть интересовали бы все делители, я бы посоветовал вычислять количество делителей через факторизацию. Это эффективнее. Но для данной задачи притягивать сюда за уши факторизацию не нужно. Она и обычным перебором до корня уложится в отведенное время.
1
|
|||
| 10.10.2023, 09:35 | |
|
Помогаю со студенческими работами здесь
6
Задача с Codeforces Задача А. Взята с codeforces Задача с Codeforces, уровень A Codeforces задача A. Way Too Long Words Нахождение суммы остатков (задача с Codeforces) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|