Задание 27 (Динамические решения) // ЕГЭ по информатике 2022

preview_player
Показать описание
Разбираемся с динамическими способами подсчёта количества и максимума/минимума, а также учётом расстояния между элементами.

За мат, КАПС, политоту, флуд - перманентный бан.

--------------------------------------------------------------------------------------------

Ссылки на каналы других годных преподавателей:
Евгений Джобс

Информатик БУ

Alex Danov

Андрей Рогов

Леонид Шастин

Ботай каждый день, глупый дурачок

Таймкоды
00:00 Приветствие
02:10 Количество пар 1
27:35 Количество пар 2
45:35 Количество пар 3
01:02:45 Максимальная сумма
01:25:35 Минимальная сумма
01:32:50 Первый больше второго
01:45:30 Расстояние 1
02:03:30 Расстояние 2
02:23:30 Расстояние 3 (+жесть с остатками)
02:35:35 Окончание и напутствия
Рекомендации по теме
Комментарии
Автор

Итак, я написал ЕГЭ на 93 балла. Спасибо большое за Ваш труд. Ваши вебы очень помогли достичь такого уровня. Здорово, что вы понятно объясняете и даёте необычные (непрямые) подходы к решению задач!

pgn
Автор

😨 можно заменить доп. остаток на: a[-x%127]. Будет получаться то же самое, но можно не учитывать даже остаток= 0. Тк -0 = 0

Итого решение:

x= int(…)
count+=k[-x%127]
k[x%127]+=1

accessdeniedn
Автор

Огромное спасибо за ваш труд и понятные объяснения!

Lavrov
Автор

огромное спасибо, благодаря вам я смог полностью понять эту тему

twizziny
Автор

1:48:41 а можно убрать условие заранее написав for j in range(i+8, n) ?

nqvv
Автор

2:06:50 кажется, можно просто искать сумму кратную 567 * 2 = 1134

mihailbutvin
Автор

почему в последнем номере ответы разные на разных решениях?

ksim
Автор

чисто я за час до экза решил посмотреть веб)))

astk
Автор

Объясните мне пожалуйста, почему (в самой последней задаче) мы просто берем и умножаем число на числа от 1 до 24?
Ну вот пример, допустим у меня есть список: (3, 7, 6, 9, 0). По сути, тут нет ни одной пары, которая при умножении делилась бы на 24. Но если смотреть по задаче, то мы просто 3 умножаем на 8 и 16, а 6 умножаем на 4 и 8 и 12 и 16 и 20 и еще много других таких же действий с другими числами. Получаем кучу пар... Как это работает? Объясните пожаааааалуйста

kamiloid
Автор

Извините, а можно вместо очереди просто рассматривать первым там, k-ый элемент, а в статистику заносить просто n-k -ый элемент, где к - минимальное расстояние? Это работает, но вот вопрос, всегда ли

ivanpolyakov
Автор

50:09 я правильно понял, что в ost, мы находим остаток, который должен быть у второго числа, чтобы сумма стала кратной 127?

dimabaranov
Автор

А нельзя в последней задаче в динамике без цикла обойтись? Допустим высчитать ost от x и count+=k[24//ost], ну для 0 отдельно естественно прописать

bznnhmv
Автор

извините, а почему в последней задаче (с измененным условием, где не менее 7) мы x умножаем на j? ведь у нас должно быть произведение остатков кратно 24, а х - это считываемое число. или я туплю....

dnsrwntstslp
Автор

Во втором примере не учли, что кратные 15 кратны и 5 и 3, тобиш счётчики k3, k5 тоже должны инкрементировать

aufchk
Автор

в последней задаче у вас ответы не сошлись с переборным алгоритмом. Во второй реализации вы (я думаю) не правильно реализовали процесс увеличения/уменьшения счётчика k. Надо было для числа, которое выходит из очереди (число q[0]) из счётчика k[q[0]%24] наоборот вычесть один. У нас же число вышло из очереди (из "зоны ближайших семи чисел"), а нам надо считать для чисел, которые в этой "зоне". А вот для нового числа x надо ещё прописать k[x%24]+=1, т.е мы его добавили в очередь и можем исользовать со всеми следующими семью числами.

TGrod
Автор

задача на поиск максимальной суммы:
если бы было условие ВТОРОЙ ЭЛЕМНТ БОЛЬШЕ ПЕРВОГО,
то нужно было бы просто развернуть массив?

rowpbvh