|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
||||||
Нужно ускорить/опитимизировать код30.04.2023, 08:37. Показов 3651. Ответов 55
Метки нет (Все метки)
Задача:
La Cucaracha Каждую полночь в квартире ученого Васи начинается ужас. Сотни ..., о нет! ТЫСЯ- ЧИ тараканов вылазят из каждой дырки к его обеденному столу, уничтожая все крошки и объедки! Вася ненавидит тараканов. Он очень долго думал и сделал Супер-ловушку, которая привлекает всех тараканов в большой зоне после активации. Он планирует ак- тивировать ловушку сегодня ночью. Но есть проблема. Эта очень эффективная ловушка с её очень большой зоной работы поглощает огромное количество энергии. Так что, Вася планирует минимизировать время работы этой ловушки. Он собрал информацию о всех местах, в которых живут тараканы. Также он заметил, что все тараканы двигаются толь- ко по линиям его скатерти с постоянной скоростью (мы можем предположить, что эта скорость равна 1, так что таракан расположенный в одной из секций, может за 1 едини- цу времени переместится на любую соседнюю секцию (по вертикали или горизонтали)). Вася решил активировать его ловушку в одной из секций. Когда ловушка активирована, все тараканы будут двигаться к секции, содержащей ловушку, так быстро, как только смогут. Поэтому в любой момент времени после активации тараканы двигаются к сек- ции, в которой находится ловушка, максимально уменьшая расстояние до неё. Если есть два пути с одинаковым расстоянием, то таракан выберет любой. Напишите программу для Васи, которая выбирает секцию, минимизирующую время, необходимое для уни- чтожения всех тараканов. Конечно, ваша программа будет считать, что скатерть будет плоскостью с декартовой системой координат и секции — точки с целыми координатами. Формат входного файла В первой строке входного файла содержится число мест, в которых живут тараканы М (1< М < 10000). Следующие М строк содержат 1 и у — координаты мест, в которых живут тараканы (целые числа не больше 10° по абсолютному значению). Формат выходного файла Вам необходимо вывести только два целых числа х и у, не превосходящие по модулю 10°, — координаты секции, которая минимизирует время работы. Если есть более одное решение — выведите любое из них. Вот мой код:
Но он не проходит огроменный тест(( Кликните здесь для просмотра всего текста
239
-254 -670 -596 714 608 -680 -96 479 -1 -97 620 440 -112 339 514 -265 65 -386 119 -13 223 -386 -254 -158 159 271 589 -341 560 553 620 295 62 -546 516 352 396 88 -685 -521 217 294 52 -86 205 -608 58 225 -673 -532 -195 -14 -204 -5 -41 11 -65 -689 -289 385 350 -386 -226 284 465 -425 -561 -326 90 644 403 430 -459 399 313 483 -630 -286 -519 -623 -314 698 155 -506 -609 -65 -466 517 347 600 -308 -599 295 -71 443 -153 337 -706 449 -205 62 -203 609 400 -354 -201 -145 -28 -44 -355 -360 -150 625 538 -642 -677 -700 -716 -309 100 -59 -439 -286 -391 -339 525 -273 85 -21 -63 671 506 -193 589 -93 519 -463 524 -694 -96 76 -388 334 470 -322 -616 -69 398 376 694 -121 124 336 -197 -302 437 427 -360 -590 -302 611 252 122 276 -616 258 -629 234 -141 -132 33 -237 556 692 311 530 -401 -642 108 -550 -272 -426 642 271 481 202 306 706 113 471 225 -705 67 712 276 555 -591 279 -263 180 20 441 -160 -138 627 307 133 -202 -241 3 -420 496 -669 -123 -679 -22 -470 643 69 69 385 -311 412 -46 -28 649 -242 38 -373 624 -29 -689 -368 122 138 -91 -633 -600 -689 -53 449 -280 -502 493 285 -253 95 -131 -295 586 -308 441 -120 354 32 353 0 -315 89 399 341 -237 138 638 -55 669 211 441 1 -438 604 249 7 71 -404 -622 -56 133 -369 321 562 500 622 263 -48 439 -476 -358 -693 603 -61 555 -454 405 -35 -246 -463 544 79 -46 -145 166 -20 449 562 38 -367 70 531 480 0 29 424 428 -695 241 360 0 -291 312 -594 -696 -563 -463 102 -550 279 610 61 652 505 646 404 -199 -475 -674 -577 332 -608 -139 521 167 67 314 684 -15 101 474 708 -257 354 -414 -142 588 169 -646 -311 -528 135 -261 502 39 122 -199 99 575 275 436 555 517 110 460 386 -60 -204 -623 69 -203 -498 458 442 -409 173 -541 -292 -495 -561 696 -581 106 -313 602 44 192 -264 -158 99 -495 -660 632 235 453 178 -618 -275 476 247 -520 377 65 478 516 287 115 -305 -469 356 3 313 59 -473 -513 189 673 -490 -694 -541 -287 -25 2 -50 105 -35 287 -554 -4 130 -481 713 -233 -698 561 -435 367 -625 -331 -170 -129 -183 584 139 -210 -623 -13 -315 48 -76 -548 143 624 574 382 -21 -482 -707 461 653 43 -550 482 148 571 481 633 -222 561 -450 126 Что делать? Как быть?
0
|
||||||
| 30.04.2023, 08:37 | |
|
Ответы с готовыми решениями:
55
Задача: даны НОК и НОД. Нужно найти все пары чисел, для которых они верны. Нужно ускорить код Ускорить код:
|
|
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
|
|
| 30.04.2023, 10:44 | |
|
Почему бы не взять просто среднее по х и среднее по y? С учетом дискретности, конечно же.
0
|
|
|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
||||||
| 30.04.2023, 11:13 [ТС] | ||||||
|
u235,
Вот так что-ли?
0
|
||||||
|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
|
| 30.04.2023, 11:22 [ТС] | |
|
или нет??
Добавлено через 9 минут Видимо нет, полегла на предыдущем тесте: Кликните здесь для просмотра всего текста
50 -36 -94 -83 100 85 -95 -14 67 0 -14 87 62 -16 48 72 -37 9 -54 17 -2 31 -54 -36 -22 22 38 82 -48 78 78 87 41 9 -77 72 49 55 12 -96 -73 30 41 7 -12 29 -85 8 31 -94 -75 -27 -2 -29 -1 -6 2 -9 -97 -41 54 49 -54 -32 40 65 -60 -79 -46 13 90 56 60 -64 56 44 68 -88 -40 -73 -87 -44 98 22 -71 -85 -9 -65 72 49 84 -43 -84 41 -10 62 -21 47 -99 63 -29 --- Результат работы: размер 5 --- 5 -5 --- Правильный ответ: размер 6 --- -4 -3
0
|
|
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|
| 30.04.2023, 11:33 | |
|
0
|
|
|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
||||||
| 30.04.2023, 11:56 [ТС] | ||||||
|
Red white socks, u235, мне учитель говорил, что можно рассматривать каким-то образом четырехугольник на плоскости, в который должны входить ловушки, а если они выходят за края(а должны заходить в вершины), то нужно повернуть его на 45гр*sqrt(2)
Как это реализовать?? Добавлено через 11 минут Реализовать смог, но код теперь даже третий тест не могёт
3 0 0 4 4 -1 5 Вывод(моего кода): 1 2 Правильный выовд: 0 4
0
|
||||||
|
8849 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
|
||||||
| 30.04.2023, 12:04 | ||||||
|
DOPIXKMNLD, зависимость расстояния линейная (и без весов) от координат. Должно так прокатить:
0
|
||||||
|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
|
| 30.04.2023, 12:12 [ТС] | |
|
Gdez, не прокатило
![]() Ввод: 2 1 1 3 3 Вывод: 1 3 Должно быть 2 2
0
|
|
|
8849 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
|
|
| 30.04.2023, 12:13 | |
|
При больших М можно вместо циклов (15-я и 21-я строчки) можно двоичный поиск
0
|
|
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|
| 30.04.2023, 12:13 | |
|
DOPIXKMNLD, такие фокусы если и проходят, то находятся за пределами моего понимания)
В общем случае (непрерывный в произвольной метрике), такое решается итерационными приближениями (взяв например среднюю в начале), но возможно для манхэттенского расстояния есть и какой-то специальный хак.
0
|
|
|
8849 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
|
|||
| 30.04.2023, 12:15 | |||
|
DOPIXKMNLD,
0
|
|||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|||
| 30.04.2023, 12:25 | |||
|
Посмотрите на маленьких примерах, проходит ли решение: берем медиану по иксу и медиану по игреку. На глаз кажется что должно, но мало ли. А на бумаге проверить пока не могу.
Добавлено через 5 минут Добавлено через 3 минуты
0
|
|||
|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
||||||
| 30.04.2023, 12:43 [ТС] | ||||||
|
Red white socks, сделал, если правильно понял вас:
Только вот теперь не проходит вот такой тест: ====== Тест #5 ======= --- Входные данные: размер 14 --- 3 1 4 1 9 1 5 --- Результат работы: размер 4 --- 1 5 --- Правильный ответ: размер 4 --- 1 6 --- Поток ошибок: размер 0 --- Не по теме: *трагичный хнык*
0
|
||||||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|
| 30.04.2023, 12:57 | |
|
DOPIXKMNLD, а теперь понял. Вам надо минимизировать не сумму, а максимум. Тогда еще проще - берете среднее от минимума и максимума по каждой координате.
0
|
|
|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
||||||||||||
| 30.04.2023, 13:04 [ТС] | ||||||||||||
|
Red white socks, делал такое уже:
Добавлено через 50 секунд Gdez, бинпоиском тоже делал
Тоже Ввод: 3 0 0 4 4 -1 5 Вывод(моего кода): 1 2 Правильный выовд: 0 4
0
|
||||||||||||
|
8849 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
|
|
| 30.04.2023, 13:15 | |
|
DOPIXKMNLD, бинпоиск для моего (не Вашего) кода
0
|
|
|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
||||||
| 30.04.2023, 13:41 [ТС] | ||||||
|
Gdez, сейчас попробую добавить
Добавлено через 20 минут Gdez, добавил
3 0 0 4 4 -1 5 выводит 1 0, надо 0 4
0
|
||||||
|
8849 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
|
||||||
| 30.04.2023, 14:45 | ||||||
|
DOPIXKMNLD, Нашел ошибку в Вашем коде - в модуле max_distance
Бинарный поиск не стал искать ошибку. А в общем Red white socks прав - медиана по координатам => ответ:
0
|
||||||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
||
| 30.04.2023, 15:02 | ||
|
Есть такая мысль - найти диаметральные точки (с наибольшим расстоянием) и центр должен находиться на середине какого-то пути между ними. Здесь не должен быть большой перебор. Добавлено через 7 минут Еще можно попробовать что-то типа метода ветвей и границ. Находить линейно эвристикой приближение к минимуму и область поиска ограничить пересечением кругов с данным радиусом.
0
|
||
|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
|
| 30.04.2023, 15:03 [ТС] | |
|
0
|
|
| 30.04.2023, 15:03 | |
|
Помогаю со студенческими работами здесь
20
Как ускорить код?
Как ускорить код? Оптимизировать?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
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 была полностью переписана на Си, в. . .
|