Разбор варианта 22042022 | Информатика ЕГЭ

preview_player
Показать описание
Записаться на курс (3000р до конца учебного года):

Сборники 100 задача:

0:00:00 Начало
00:03:51 1 задание
00:07:35 2 задание
00:13:03 3 задание
00:19:54 4 задание
00:28:19 5 задание
00:30:55 6 задание
00:37:53 7 задание
00:43:22 8 задание
00:46:17 9 задание
00:51:36 10 задание
00:53:35 11 задание
00:58:15 12 задание
01:01:15 13 задание
01:02:41 14 задание
01:09:05 15 задание
01:13:28 16 задание
01:16:36 17 задание
01:21:50 18 задание
01:35:08 19-21 задание
01:47:04 22 задание
01:51:39 23 задание
02:16:03 24 задание
02:22:31 25 задание
02:31:37 26 задание
03:08:40 27 задание

Алексей Кабанов

Alex Danov

Рекомендации по теме
Комментарии
Автор

Таймкоды
0:00:00 Начало
00:03:51 1 задание
00:07:35 2 задание
00:13:03 3 задание
00:19:54 4 задание
00:28:19 5 задание
00:30:55 6 задание
00:37:53 7 задание
00:43:22 8 задание
00:46:17 9 задание
00:51:36 10 задание
00:53:35 11 задание
00:58:15 12 задание
01:01:15 13 задание
01:02:41 14 задание
01:09:05 15 задание
01:13:28 16 задание
01:16:36 17 задание
01:21:50 18 задание
01:35:08 19-21 задание
01:47:04 22 задание
01:51:39 23 задание
02:16:03 24 задание
02:22:31 25 задание
02:31:37 26 задание
03:08:40 27 задание

kompege
Автор

спасибо огромное за вариант и предельно понятный разбор. сдвигает шаблонность. позволяет взглянуть на привычные задачи непривычным способом. провоцирует генерацию импровизации креативных подходов

evgenyland
Автор

как вариант Игру в Камни чуть в другой форме(но с тем же содержанием) можно так:

print('task 19')
def f(s, n, prev = frozenset()):
if(s >= 250): return (n==3)
vsteps = (s+1, s+2, s+3, s*2, s*3, s*s)
steps = [(i, vsteps[i]) for i in range(6) if(i not in prev)]

if(n%2 == 0):
return any([f(x, n+1, prev|{i}) for i, x in steps])
else:
return any([f(x, n+1, prev|{i}) for i, x in steps])

for s in range(1, 250):
if(f(s, 1)):
print(s)
break

print('task 20')
def f(s, n, prev = frozenset()):
if(s >= 250): return (n==4)
vsteps = (s+1, s+2, s+3, s*2, s*3, s*s)
steps = [(i, vsteps[i]) for i in range(6) if(i not in prev)]

if(n%2 == 1):
return any([f(x, n+1, prev|{i}) for i, x in steps])
else:
return all([f(x, n+1, prev|{i}) for i, x in steps])
l = set()
for s in range(1, 250):
if(f(s, 1)):
l.add(s)
print(min(l), max(l))

print('task 21')
def f(s, n, prev = frozenset()):
if(s >= 250): return (n==5) or (n==3)
vsteps = (s+1, s+2, s+3, s*2, s*3, s*s)
steps = [(i, vsteps[i]) for i in range(6) if(i not in prev)]

if(n%2 == 0):
return any([f(x, n+1, prev|{i}) for i, x in steps])
else:
return all([f(x, n+1, prev|{i}) for i, x in steps])
def f1(s, n, prev = frozenset()):
if(s >= 250): return (n==3)
vsteps = (s+1, s+2, s+3, s*2, s*3, s*s)
steps = [(i, vsteps[i]) for i in range(6) if(i not in prev)]

if(n%2 == 0):
return any([f1(x, n+1, prev|{i}) for i, x in steps])
else:
return all([f1(x, n+1, prev|{i}) for i, x in steps])

l = set()
for s in range(1, 250):
if(f(s, 1)):
l.add(s)
for s in range(1, 250):
if(f1(s, 1)):
l = l - {s}
print(min(l))

evgenyland
Автор

В задании №4 буква "Н" хоть и не участвует в слове "мукии...ским", но она передается по каналу связи. По второму дереву если для "т" будет код 1111 (длина 4), то тогда для буквы Н на дереве места не останется....

vltldho
Автор

Евгений, а как можно динамически решить конкретно эту тройку задач 19-21?

IvanKurkov
Автор

почему lru_cache(None) значительно ускоряет прогу?

uzhchuo
Автор

Почему в задание 26 в примере не рассматривается пара (3, 5)?

infsv
Автор

вторую задачку решала программно, а потом ручками вторую задачу, в обоих случаях у меня получился ответ zxyw

vltldho
Автор

в задаче №4 я расставил: М-1101, Н-11000, С - 1111, Т - 11001, при этом получилось 36. То ли я дебил, то ли лыжи не едут

sayerbiri
Автор

Вот решение 19 - 21с шаблоном от Алексея Кабанова:
def f(s, p, c, m):
if s>=250: return c%2==m%2
if c==m: return 0
h = []
if '+1' not in p: h += [f(s+1, p+'+1', c+1, m)]
if '+2' not in p: h += [f(s+2, p+'+2', c+1, m)]
if '+3' not in p: h += [f(s+3, p+'+3', c+1, m)]
if '*2' not in p: h += [f(s*2, p+'*2', c+1, m)]
if '*3' not in p: h += [f(s*3, p+'*3', c+1, m)]
if '^2' not in p: h += [f(s**2, p+'^2', c+1, m)]
return any(h) if (c+1)%2==m%2 else all(h)
for s in range(1, 250):
for m in range(1, 5):
if f(s, '', 0, m)==1:
print(s, m)
break

hswetvu
Автор

27 совсем непонятно. Я думал что-то с производными связанное,
кончено

BlinVolodA
Автор

в 18 задании вы не учли еще одно условие, если нечетно +1

Odmeralpolkovodec
Автор

10 задание: А слово "чтобы" нужно учитывать видимо? Просто написано: сколько ОТДЕЛЬНЫХ слов "что". Это путает

intention-man