This media is not supported in your browser
VIEW IN TELEGRAM
✏️ Полный разбор задачи в Notion
Тенденции показывают, что с каждым годом экзамен все больше смещается в сторону программирования. Мы не отстаем от трендов и публикуем разбор именно этого 1 номера, так как он идеально решается через способ, который придумали наши коллеги с канала PRO100 ЕГЭ
from itertools import permutations
table = '14 17 18 23 25 26 32 34 38 41 43 47 48 52 56 58 62 65 71 74 81 83 84 85'
graph = 'АБ БА АИ ИА ИБ БИ ИЖ ЖИ БЖ ЖБ БВ ВБ ВЖ ЖВ ВГ ГВ ЖЕ ЕЖ ЕГ ГЕ ДГ ГД ЕД ДЕ'
for per in permutations('АБВГДЖИЕ'):
new_table = table
for i in range(1, 8+1):
new_table = new_table.replace(str(i), per[i-1])
if set(new_table.split()) == set(graph.split()):
print('1 2 3 4 5 6 7 8')
print(*per)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥9👍5 4❤1
#kege #yandex
#reshu #statgrad
#polyakov
#ЕГЭ1 #ЕГЭ10 #ЕГЭ19
#ЕГЭ2 #ЕГЭ11 #ЕГЭ20
#ЕГЭ3 #ЕГЭ12 #ЕГЭ21
#ЕГЭ4 #ЕГЭ13 #ЕГЭ22
#ЕГЭ5 #ЕГЭ14 #ЕГЭ23
#ЕГЭ6 #ЕГЭ15 #ЕГЭ24
#ЕГЭ7 #ЕГЭ16 #ЕГЭ25
#ЕГЭ8 #ЕГЭ17 #ЕГЭ26
#ЕГЭ9 #ЕГЭ18 #ЕГЭ27
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Основная волна 19.06.24
Уровень: Базовый
Определите, какова сумма протяжённостей дорог из пункта F в пункт B и из пункта E в пункт D.
Данный код позволяет нам в универсальном случае определить последовательность вершин графа. И если знаем вершины, то не сложно найти длины и сумму длин!
from itertools import permutations
table = '12 15 16 21 23 24 32 36 37 42 47 51 56 61 63 65 73 74'
graph = 'AB BA AF FA FB BF FE EF BD DB ED DE EC CE DG GD CG GC'
for per in permutations('ABCDEFG'):
new_table = table
for i in range(1, 7+1):
new_table = new_table.replace(str(i), per[i-1])
if set(new_table.split()) == set(graph.split()):
print('1 2 3 4 5 6 7')
print(*per)
# 1 2 3 4 5 6 7
# B D E G A F C
# FB = 53, ED = 2, => 55
# 1 2 3 4 5 6 7
# F E D C A B G
# ED = 53, FB = 2, => 55
from itertools import permutations
Импортируем функцию permutations из модуля itertools для генерации всех возможных перестановок элементов.
table = '12 15 16 21 23 24 32 36 37 42 47 51 56 61 63 65 73 74'
Определяем строку 'table', представляющую набор чисел, разделенных пробелами, которые описывают соединения в графе.
graph = 'AB BA AF FA FB BF FE EF BD DB ED DE EC CE DG GD CG GC'
Определяем строку 'graph', которая описывает возможные связи между буквами A, B, C, D, E, F, G в графе.
for per in permutations('ABCDEFG'):
Запускаем цикл, перебирающий все возможные перестановки букв A, B, C, D, E, F, G.
new_table = table
Создаем копию строки 'table', чтобы постепенно заменять числа на соответствующие буквы из текущей перестановки.
for i in range(1, 7 + 1):
Запускаем вложенный цикл, который проходит по всем числам от 1 до 7.
new_table = new_table.replace(str(i), per[i - 1])
Заменяем каждое число в 'new_table' на соответствующую букву из текущей перестановки 'per', используя индексы.
if set(new_table.split()) == set(graph.split()):
Проверяем, совпадает ли множество уникальных элементов в 'new_table' с множеством уникальных элементов в 'graph'.
print('1 2 3 4 5 6 7')
Если множества совпадают, выводим строку '1 2 3 4 5 6 7', что означает, что найдено подходящее соответствие.
print(*per)
Печатаем текущее соответствие букв из перестановки, используя распаковку для форматированного вывода.
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Демоверсия 2025
Уровень: Базовый
Определите, какова сумма протяжённостей дорог из пункта D в пункт G и из пункта A в пункт C.
Представленный код решения выполняет тривиальный перевод всех вариантов, таким образом, в любой задаче мы сможем найти сопоставление вершин графа. В данном случае нужно заметить, что длина DG получилась равной 8, а длина AC — 30.
from itertools import permutations
table = '14 15 17 24 26 35 36 37 41 42 51 53 56 62 63 65 71 73'
graph = 'AB BA AC CA EC CE CG GC EF FE FG GF FD DF DG GD DB BD'
for per in permutations('ABCDEFG'):
new_table = table
for i in range(1, 7+1):
new_table = new_table.replace(str(i), per[i-1])
if set(new_table.split()) == set(graph.split()):
print('1 2 3 4 5 6 7')
print(*per)
# 1 2 3 4 5 6 7
# C B F A G D E
# Ответ: 30 + 8 = 38
from itertools import permutations
Импортируем функцию permutations из модуля itertools, которая позволяет генерировать все возможные перестановки элементов.
table = '14 15 17 24 26 35 36 37 41 42 51 53 56 62 63 65 71 73'
Задаем строку table, которая содержит пары чисел, разделенных пробелами.
graph = 'AB BA AC CA EC CE CG GC EF FE FG GF FD DF DG GD DB BD'
Задаем строку graph, которая содержит пары букв, разделенных пробелами, представляющих связи в графе.
for per in permutations('ABCDEFG'):
Проходим по всем возможным перестановкам букв 'A', 'B', 'C', 'D', 'E', 'F', 'G'.
new_table = table
Создаем копию строки table, которая будет изменяться в процессе.
for i in range(1, 7+1):
Проходим по числам от 1 до 7 включительно (индексам элементов строки per).
new_table = new_table.replace(str(i), per[i-1])
Заменяем все вхождения числа i в строке new_table на соответствующую букву перестановки per.
if set(new_table.split()) == set(graph.split()):
Сравниваем множества пар из new_table и graph. Если они совпадают, то:
print('1 2 3 4 5 6 7')
Печатаем строку с числами от 1 до 7.
print(*per)
Печатаем текущую перестановку букв 'A', 'B', 'C', 'D', 'E', 'F', 'G', разделяя их пробелами.
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
3 6 5 4