|
0 / 0 / 0
Регистрация: 13.10.2022
Сообщений: 44
|
||||||
Можно как-то ускорить код?17.11.2022, 15:07. Показов 2113. Ответов 21
Метки python для начинающих (Все метки)
размер массива, количество запросов массив ( в каких отрезках нужно найти сумму )
0
|
||||||
| 17.11.2022, 15:07 | |
|
Ответы с готовыми решениями:
21
Можно ли ускорить код через pypy? Как можно попробовать ускорить код
|
|
0 / 0 / 0
Регистрация: 13.10.2022
Сообщений: 44
|
|
| 17.11.2022, 19:51 [ТС] | |
|
Входные данные
В первой строке записано два целых числа n и q (1<=n, q<=3*10^5 ) - размер массива и количество запросов. Во второй строке записаны n целых чисел v (1<=v<=10^9 ) - сам массив. Далее в q строках описаны запросы к массиву. Каждый запрос описывается двумя числами l, r (1 <= l <= r <= n) - левой и правой границей отрезка, на котором нужно найти сумму. Выходные данные Для каждого запроса в отдельной строке выведите единственное число - сумму на соответствующем отрезке. С 24 из 46 тесте превышен лимит по времени, что там дальше по числам - не знаю( Надо пробовать переписать на с++, но я с ними не особо дружу, поэтому хочу найти способ ускорить питон, если это возможно
0
|
|
|
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
|
||||||||||||
| 17.11.2022, 20:46 | ||||||||||||
1
|
||||||||||||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
||||||
| 17.11.2022, 20:54 | ||||||
anton78spb, ваш код не пройдет по времени
1
|
||||||
|
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
|
||||||
| 17.11.2022, 21:00 | ||||||
|
Red white socks, А так?
1
|
||||||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
||
| 17.11.2022, 21:05 | ||
|
anton78spb, у вас сложность O(q*n)
Посмотрите у меня через кумуляты, тут О(max(q,n)) Добавлено через 2 минуты Для тех, кто немного интересовался тервером и знает, что такое функция и плотность распределения - задача не вызовет никакой трудности
1
|
||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|
| 17.11.2022, 21:20 | |
|
1
|
|
|
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
|
|
| 17.11.2022, 21:37 | |
|
Red white socks, Посмотрел документацию на
itertools.accumulate. Возможно я сильно туплю под вечер, но я вообще не понимаю, как можно применить эту функцию при решении данной задачи. Что вы тут собираетесь аккумулировать?Просто на примере. Пусть будут такие данные. n, q = 5, 2 nums = 6, 3, 1, 8, 4. Две пары границ с 2 по 4 с 1 по 3 Результат для пары (2, 4): 3 + 1 + 8 = 12 Результат для пары (1, 3): 6 + 3 + 1 = 10 Можете пояснить, что тут надо аккумулировать? Или возможно я не понял условия задачи.
0
|
|
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|
| 17.11.2022, 22:03 | |
|
anton78spb, пусть S(n) = sum(a[1:n+1]) - сумма чисел массива от первого до n-го
Тогда сумма чисел от i-го до j-го s(i,j)=S(j)-S(i-1) Результат каждого запроса находится за 1 вычитание, вне зависимости сколько чисел нужно сложить в запросе. Добавлено через 14 минут По примеру: Считаем кумуляты (префикс-суммы): S(0) =0 S(1) = 6 S(2) = 6+3 S(3) = 6+3+1 = 10 S(4) = 6+3+1+8= 18 S(5) = 6+3+1+8+4= 22 Тогда s(2,4) = S(4) - S(1) = 18 - 6 = 12 s(1,3) = S(3) - S(0) = 10 - 0 = 10 Итого потребуется n операций для расчета кумулят + q операций на запросы. Итого n+q вместо n*q
5
|
|
|
0 / 0 / 0
Регистрация: 13.10.2022
Сообщений: 44
|
|
| 18.11.2022, 09:22 [ТС] | |
|
Спасибо
Да, там, где я решаю сейчас задачи, ограничение по аремени не перерасчитывается в зависимости от языка
0
|
|
|
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
|
|
| 18.11.2022, 09:25 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 13.10.2022
Сообщений: 44
|
|
| 19.11.2022, 13:06 [ТС] | |
|
код стал быстрее, теперь лимит превышен только с 36 теста
0
|
|
|
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
|
|||||||||||
| 19.11.2022, 13:54 | |||||||||||
|
Itbkydc, Вроде многоуважаемые eaa и Red white socks уже очень детально расписали как данная задача решается.
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 13.10.2022
Сообщений: 44
|
|
| 19.11.2022, 17:38 [ТС] | |
|
Я выше поблагодарил этих многоуважаемых, но так же уточнил, что несмотря на то, что код стал быстрее, на части тестов он все так же, ни с одной из предложенных программ, не проходит по времени.
0
|
|
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|
| 19.11.2022, 17:47 | |
|
Тут вспоминается один представитель малокоренного народа, которому все буквы дали.
0
|
|
| 19.11.2022, 17:47 | |
|
Помогаю со студенческими работами здесь
20
Как можно ускорить мой код? Как можно ускорить этот код?
Можно ли ускорить код? Как можно ускорить BWT? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|