Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 22.08.2023
Сообщений: 9

Как сократить время на выполнение задачи и объем памяти?

02.03.2024, 22:31. Показов 2316. Ответов 2

Студворк — интернет-сервис помощи студентам
Добрый день!
Есть задача Субботник (условие и решение). Вот решение. Как его улучшить, чтобы время выполнения кода было меньше 1с, объем памяти меньше 64Мб ?

Условие задачи.
Вася и Маша участвуют в субботнике и красят стволы деревьев в белый цвет. Деревья растут вдоль улицы через равные промежутки в 1 метр. Одно из деревьев обозначено числом ноль, деревья по одну сторону занумерованы положительными числами 1, 2 и т.д., а в другую — отрицательными -1, -2 и т.д. Ведро с краской для Васи установили возле дерева P, а для Маши — возле дерева Q. Ведра с краской очень тяжелые и Вася с Машей не могут их переставить, поэтому они окунают кисть в ведро и уже с этой кистью идут красить дерево. Краска на кисти из ведра Васи засыхает, когда он удаляется от ведра более чем на V метров, а из ведра Маши — на M метров. Определите, сколько деревьев может быть покрашено.

# Формат ввода

# В первой строке содержится два целых числа P и V — номер дерева, у которого стоит ведро Васи и на сколько деревьев он может от него удаляться. В второй строке содержится два целых числа Q и M — аналогичные данные для Маши. Все числа целые и по модулю не превосходят 108 .

# Формат вывода

# Выведите одно число — количество деревьев, которые могут быть покрашены.

Вот решение. Как его улучшить, чтобы время выполнения кода было меньше 1с, объем памяти меньше 64Мб ?


Python
1
2
3
4
5
6
7
8
9
Masha_N, Masha_dist = input().split(' ')
Vasya_N, Vasya_dist = input().split(' ')
mn = int(Masha_N)
md = int(Masha_dist)
vn = int(Vasya_N)
vd = int(Vasya_dist)
trees = 0
trees = sum((1 for i in range(mn - md, mn + md + 1) if vn - vd <= i <= vn + vd))
print(2 * md + 1 + 2 * vd + 1 - trees)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2024, 22:31
Ответы с готовыми решениями:

Как вы оцениваете время на выполнение задачи?
Как справляться с ситуациями, когда на ровном месте возникают проблемы при разработке. Например при работе с проектом требуется сторонняя...

Как оценить время и объем требуемой памяти для atmega 128
Добрый день Всем. Как оценить требуемое время и объем необходимой памяти для быстрого преобразования Фурье. Тактовая частота 16 Мгц....

Выполнение задачи в определенное время
Допустим пользователь купил премиум подписку на 30 дней (720 часов). Она активировалась. Как именно через 720 часов удалить статус премиума...

2
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
02.03.2024, 22:51
Python
1
2
3
4
p,v = map(int, input('p, v->').split())
q,m = map(int, input('q, m->').split())
res = len(set(range(p-v,p+v+1)) | set(range(q-m,q+m+1)))
print(res)
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
04.03.2024, 08:50
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ind1: int = p
delta1: int = v
inx2: int = q
delta2: int = m
 
if ind1 > ind2:
    ind1, ind2 = ind2, ind1
    delta1, delta2 = delta2, delta1
 
min1 = ind1 - delta1
max1 = ind1 + delta1
 
min2 = ind2 - delta2
max2 = ind2 + delta2
 
result = (delta1 + delta2 + 1) * 2
if max1 == min2:
    result -= 1
elseif max1 > min2:
    result -= max1 - min2
 
print(result)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.03.2024, 08:50
Помогаю со студенческими работами здесь

Выполнение задачи за фиксированное время
Есть цикл, который меняет скважность ШИМ по линейному закону. В цикле задержка. Каким образом можно задать время выполнения (в тактах)...

Выполнение задачи в определенное время
Доброго времени суток всем. задача такова, пользователь задает время копирования (к примеру 05:00), далее программа должна каждый день в 5...

Как сократить объём кода?
var list1 = new List&lt;SelectListItem&gt;(); var listAP = uow.GetRepository&lt;Subject&gt;().All().Where(x =&gt; x.ID &gt; 300); // этой строчкой берём...

Узнать время выполнения программы и объем используемой памяти
Поздравьте меня целые сутки убил на выполнение этой проблемной задачки &quot;1001. Обратный корень&quot; Изучать C# начал всего 3 недели назад...

Как можно сократить объём кода?
Как можно сократить объём кода? Интуитивно кажется, что участок с &quot;if and else if&quot; можно как то сократить, но не приходит в голову как......


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru