Готовлю к ЕГЭ по информатике

Основная информация

Моя актуальная анкета на сайте repetit.ru (кликнуть для перехода)
https://repetit.ru/repetitor.aspx?id=77475

Контактная информация

Если желаете начать обучение у меня, пишите/звоните:
8-916-122-77-47 (Мобильный+WhatsApp+Viber+Telegram)

Электронная почта (на всякий случай):
dmklimkov@gmail.com

Неочевидные рекомендации

Задание 2: когда получили ответ, сделайте проверку. Потому что можно допустить ошибку при построении таблицы истинности, иногда соотнесли с ошибкой. Но допустить ошибку при проверке почти невозможно.

Задание 22: если не удалось «взять с наскока», сделайте шаг назад. Перепишите исходный код задачи и запустите на небольшом числе. Теперь стоит прогнать алгоритм «на бумажке». Скорее всего в процессе вы поймете в чем подвох задания.


Задание 23: решайте двумя способами, например в Excel и рекурсией в Python. Если ответы одинаковые — скорее всего ответ верный.

Задания в ЕГЭ 2022 по информатике

Тип 1 (16 заданий из 1 части).
Можно решить «руками».
1, 2, 4-8, 11-15, 19-22
Но: 10 из 16 заданий (2, 5, 6, 8, 12, 14, 15, 20-22) быстрее и надежнее решаются через питон; а 20 и 21 часто проще, быстрее и надежнее сделать в экселе.

Тип 2 (7 заданий из 1 части).
Не решить без Питона/Экселя/Текстового редактора(ворд), но просты в понимании и решении:
3, 9, 10, 16-18, 23

Тип 3 = вся 2 часть (4 задания).
Требуют Питон/Эксель + значительных ресурсов (для изучения и решения):
24-27

Знание «фишек» экселя/питона/математики позволит упростить и ускорить решение, а еженедельное прорешивание вариантов снижает вероятность ошибок «по невнимательности».

Канал на Youtube

Давно я ничего здесь не писал, так как с головой ушел в обучение. Но недавно я начал выкладывать на youtube.com/channel/UCEdtHTsupC3mDso36Z_JFLA видео с решениями различных заданий и так как там есть отсылка на мой сайт, то решил его немножко актуализировать.

По факту писать особо нечего, всё что необходимо знать я рассказываю в своих видео. Поэтому если есть какие-либо вопросы по заданиям и решениям — задавайте их на ютубе, или в whatsapp (8-916-122-77-47).

Задание 27 #15

Даны N элементов (минимум два).
Найти пару с максимальной суммой, удовлетворяющую условию: остатки от деления на 180 у чисел в паре разные; хотя бы один из элементов пары кратен 7.
1) Числа натуральные.
2) Если нет ни одной подходящей пары вывести «NO».

Наборы тестовых данных для 27 #15

5
361 362 7 364 3
————————
3
4 5 6
————————
3
2 7 7
————————
3
2 7 14
————————
3
367 12 7

Оптимальное решение 27 #15

Отсутствует

Задание 27 #14

https://inf-ege.sdamgia.ru/problem?id=13423
Оптимальное решение 27 #14
maximum = 0
max_summ = 28
n = int(input())
summs = [0] * max_summ
for i in range(n):
    summ = 0
    number = int(input())
    while number > 0:
        summ += number % 10
        number //= 10
    summs[summ] += 1
for i in range(max_summ):
    if summs[i] > maximum:
        maximum = summs[i]
        minimum = i
print(minimum)

Задание 27 #13

https://inf-ege.sdamgia.ru/problem?id=13503
Оптимальное решение 27 #13
n = int(input())
d = 10
maximum = 0
a = [0] * d
for i in range(n):
    number = int(input())
    while number != 0:
        numpart = number % d
        a[numpart] += 1
        numpart = 0
        number //= d
print(a)
maximum = max(a)
for i in reversed(range(d)):
    if a[i] == maximum:
        print(i, end=' ')

Задание 27 #12

https://yandex.ru/tutor/subject/problem/?problem_id=T9304
Оптимальное решение 27 #12
n = int(input())
d = 4
nk = [0] * d
kr = [0] * d
k = 0
for i in range(1, n+1):
    x = int(input())
    if x % 3 == 0:
        if i >= (d+1):
            k += nk[i % d]
        kr[i % d] = kr[(i-1) % d] + 1
        nk[i % d] = nk[(i-1) % d]
    else:
        if i >= (d+1):
            k += kr[i % d]
        nk[i % d] = nk[(i-1) % d] + 1
        kr[i % d] = kr[(i-1) % d]
print(k)

Неоптимальное решение 27 #12
n = int(input())
a = []
d = 4
k = 0
for i in range(n):
    a.append(int(input()))
for i in range(n-d):
    for j in range(i+d, n):
        if (a[i] * a[j]) % 3 == 0 and (a[i]+a[j]) % 3 > 0:
            k += 1
print(k)

Задание 27 #11

© СтатГрад 2019−2020 уч. г.
Оптимальное решение 27 #11
n = int(input())
k = 80
a = [0] * k # количество чисел меньше или равно 100
b = [0] * k # количество чисел больше 100
for i in range(n):
    num = int(input())
    ost = num % k
    if num <= 100:
        a[ost] += 1
    else:
        b[ost] += 1
result = 0
for i in range(k):
    result += a[i]*b[i] + b[i]*(b[i]-1)//2
print(result)

Формула 27 #11
s[i] = a[i] + (a[i]+1) + .. + (a[i]+b[i]-1)
s[i] = a[i]*b[i] + (1 + 2 + .. + (b[i]-1))
s[i] = a[i]*b[i] + b[i]*(b[i]-1)//2
выносить за скобку b[i] нельзя, так как (b[i]-1) может быть нечетным 

Задание 27 #10

https://inf-ege.sdamgia.ru/problem?id=6436
Оптимальное решение 27 #10
k = 16
n = int(input())
msgs = [0]*k
for i in range(n):
    x = int(input())
    msgs[x-1] += 1
pars = list(range(1, k+1))
for i in range(k-1):
    for j in range(i, k):
        if msgs[j] > msgs[i]:
            msgs[i], msgs[j] = msgs[j], msgs[i]
            pars[i], pars[j] = pars[j], pars[i]
    if msgs[i] > 0:
        print(pars[i], msgs[i])