|
57 / 43 / 12
Регистрация: 27.10.2018
Сообщений: 454
|
||||||||||||||||
Оптимизировать алгоритм10.07.2019, 04:11. Показов 3001. Ответов 37
Метки нет (Все метки)
Не углубляясь в детали , суть задачи - добавлять в конец вектора два элемента с значением первого и удалять первый элемент из вектора .
Я реализировал так :
Как уложиться в это время при таких значениях на входе не представляю :
0
|
||||||||||||||||
| 10.07.2019, 04:11 | |
|
Ответы с готовыми решениями:
37
Оптимизировать алгоритм Помогите оптимизировать алгоритм Как оптимизировать этот алгоритм до O(n)? |
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||||||||||||
| 10.07.2019, 16:50 | ||||||||||||
|
Добавлено через 6 минут Несколько вариантов. В каждом следующем чуть больше оптимизаций. Вроятно, можно оптимизировать еще.
0
|
||||||||||||
|
57 / 43 / 12
Регистрация: 27.10.2018
Сообщений: 454
|
|||||||
| 10.07.2019, 17:23 [ТС] | |||||||
|
Почему
И почему оно удаляет только элемент с индексом 0 , а не элементы с индексами 0 и 1 , как написано ? Так же , при 1 , должен вернутся сразу элемент с индексом 0 , а у вас получается всегда удаление первого а потом возврат , тоесть возврат значение которое должно быть с и ндексом 1.
0
|
|||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||
| 10.07.2019, 17:49 | |||
|
Все элементы удаляем за раз после выхода из цикла. Должно сэкономить массу ресурсов. Добавлено через 33 секунды Добавлено через 20 минут У меня для 101000 отработал за 6 мс
0
|
|||
|
698 / 140 / 57
Регистрация: 20.08.2017
Сообщений: 255
|
|
| 10.07.2019, 17:57 | |
|
plzvtl, зачем вообще нужно что-то делать с вектором? Нужно просто вычислить формулу последовательности.
1
|
|
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
| 10.07.2019, 17:58 | |
|
0
|
|
| 10.07.2019, 18:15 | |
|
0
|
|
|
Комп_Оратор)
|
||
| 10.07.2019, 18:16 | ||
|
Но как бы там ни было я бы не стал удалять с головы при каждом шаге (распития безалкогольного напитка в общественном месте). Тут важно понимать, сколько шагов может быть, чтобы оценить хватит ли size_t (long long уберите) для того чтобы не удалять их вообще. И если удалять то сколько шагов на один акт удаления возможен. То есть вы постоянно держите индекс головного элемента как начальный (начиная от начала и ++ при каждом шаге), а добавляете на самом деле (не понарошку )А когда нужен результат - выводите от текущего и до конца. В крайнем разе, если нужен готовый контейнер - вконце удалите всё от начала и до текущего "головного". Чтобы сказать более точно, нужно бы знать, что является результатом (что требуется в задаче).
0
|
||
|
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
|
||
| 10.07.2019, 18:23 | ||
|
Не надо тут никаких векторов, пушей и т.д. Нужен нормальный алгоритм вычисления и больше ничего.
2
|
||
|
Комп_Оратор)
|
||
| 10.07.2019, 18:34 | ||
|
Я прочел до 9 поста и решил что это по мысли ТС - условие. Шире нужно думать.
Manowar, то есть вектор нужн для задания последовательности Там пьют колу с полным содержанием коки если дают вектор (имхо). То есть, результат должен быть числом от 0 до 5 (индексом жаждущего и страждущего в изначальной очереди из 5-ти). При чём тут контейнера вообще?
0
|
||
|
698 / 140 / 57
Регистрация: 20.08.2017
Сообщений: 255
|
||||||||||||||||
| 10.07.2019, 19:23 | ||||||||||||||||
|
Немного подумав можно дойти до вот такой вот таблички:
1
|
||||||||||||||||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
||||||
| 10.07.2019, 20:11 | ||||||
0
|
||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||
| 10.07.2019, 20:31 | |||||||
|
Но и её можно ускорить, по той же схеме
0
|
|||||||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
| 10.07.2019, 20:33 | |
|
0
|
|
|
698 / 140 / 57
Регистрация: 20.08.2017
Сообщений: 255
|
|||||||||||
| 10.07.2019, 20:49 | |||||||||||
|
Если кто не понял, как работает решение, найденное, rat0r:
0
|
|||||||||||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|
| 10.07.2019, 20:59 | |
|
Eanmos, я считаю с нуля, так что
int b = 5 * (w - 1); /* Получаем число, с которого начинается прямоугольник, которому принадлежит n */
0
|
|
|
57 / 43 / 12
Регистрация: 27.10.2018
Сообщений: 454
|
||||||||
| 11.07.2019, 03:25 [ТС] | ||||||||
|
Да , я не додумался применить какую-либо формулу вычисления номера , а решил работать прямо таки с вектором. Кроме того меня спросили и я написал пояснение :я предоставил вид фиксированного теста в котором результат работы функции сравнивают со строкой которая является именем , которую мы собственно ищем. Добавлено через 6 минут Добавлено через 2 часа 31 минуту Хотя , вдруг ко мне пришла мысль : почему все дружно решили что инпут всегда вектор на 5 элементов? Я написал что это инпут фиксед теста , а в моем понимании при инпуте с вектором другого кол-ва элементов формула вычислений уже будет другая.
0
|
||||||||
|
698 / 140 / 57
Регистрация: 20.08.2017
Сообщений: 255
|
||
| 11.07.2019, 05:07 | ||
|
1
|
||
|
Комп_Оратор)
|
|||
| 11.07.2019, 08:58 | |||
|
0
|
|||
| 11.07.2019, 08:58 | |
|
Преобразование строки в байты: оптимизировать алгоритм Оптимизировать алгоритм проверки ударения слов оптимизировать алгоритм поиска вхождений строки в текстовый файл (1 Мб)
Оптимизировать алгоритм, чтобы уменьшить количество операций для проверок деления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|