|
0 / 0 / 0
Регистрация: 30.03.2021
Сообщений: 25
|
||||||
Как можно оптимизировать код?10.07.2022, 17:26. Показов 1995. Ответов 20
Метки нет (Все метки)
В первые годы существования кино технология изготовления киноплёнки была, что естественно, на невысоком уровне. Так что «артефакты» на экране были самым обычным делом.
После отсмотра только что снятой сцены известный байтландский режиссёр предъявил претензии поставщикам плёнки из-за большого количества артефактов на экране. Согласно договору, плёнка считается бракованной, если в некотором прямоугольнике, каждая из сторон которого параллельна сторонам экрана и имеет длину не менее m, доля артефактов превышает определённое значение. Перед встречей с представителем поставщика режиссёр хочет выяснить, чему равен максимум соответствующей доли артефактов для заданного кадра.
0
|
||||||
| 10.07.2022, 17:26 | |
|
Ответы с готовыми решениями:
20
Как можно оптимизировать код? Можно как-то оптимизировать этот код? Как можно оптимизировать этот код? |
|
458 / 294 / 191
Регистрация: 23.06.2018
Сообщений: 678
|
||||||||||||||||
| 11.07.2022, 09:27 | ||||||||||||||||
|
Petrign, тут бы уже не помешало увидеть точное условие задачи и ограничения по вводу, времени и памяти, а то сейчас как окажется, что мой вариант всё равно не проходит ни по времени, ни по памяти.
Пару моментов: 1. Народ, вы пробовали кешировать вычисления? Зачем вы храните массив строк, если вам достаточно булевой матрицы? Да и подсчёт тоже можно кешировать... В некотором виде. Моя мысль простая: я создаю дополнительную матрицу, в которой counts[i][j] хранит кол-во битых пикселей в прямоугольнике от [0][0] до [i][j]. Кол-во битых пикселей в прямоугольнике от [k][l] до [i][j] можно получить по формуле:counts[i][j] + counts[k-1][l-1] - counts[i][l-1] - counts[k-1][j]2. Очень прикольно, что вы просто забили на длину строки и записали всё в std::string[]. std::string хранит указатель на строку, а разыменовывание занимает время. Лучше всего когда вы идёте по элементам расположенным в памяти подряд. Была бы у вас обычная прога, я бы забил на это, но раз вы гоняетесь за скоростью при 6 вложенных циклах, то я добавил немного одномерных массивов и арифметки указателей. Вернул ввод к изначальному виду: кол-во строк, длина строки, минимальная длина стороны прямоугольника, битые пиксели, матрица
Кликните здесь для просмотра всего текста
Код чисто по заданию: Кликните здесь для просмотра всего текста
Добавлено через 12 минут О, нашёл ограничения по вводу: В первой строке входа заданы три целых числа u, d и m — количество точек на экране по вертикали, количество точек на экране по горизонтали, длина стороны минимального квадрата m (1 ≤ u,d ≤ 50, 1 ≤ m ≤ min(u,d)). Следующая строка содержит от 1 до 26 попарно различных заглавных латинских букв, соответствующих артефактам на экране. Далее следует описание кадра. Каждая из последующих u строк содержит по d заглавных латинских букв от “A” до “Z”, задающих яркость точек на экране (при этом, если буква входит в список обозначений артефактов, то в данной точке содержится артефакт). Так что по идее должен уложиться по времени и, надеюсь, по памяти.
1
|
||||||||||||||||
| 11.07.2022, 09:27 | |
|
TLE и как можно оптимизировать код Как можно оптимизировать данный код? Наследование классов как можно оптимизировать код и условие Кажется написал ужасный код. Можно его как-то оптимизировать?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности.
. . .
|
Обработка трёх чисел: утроение и возведение в степень
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Даны три действительных числа. Утроить те из них, значения которых неотрицательны, и возвести в четвертую степень отрицательные.
. . .
|
Расчёт стоимости яблок по весу
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Написать программу вычисления стоимости некоторого количества (по весу) яблок.
Решение:
Создан документ, с табличной частью. . .
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|