№1 — примеры решений

Один эталонный разбор.

На рисунке схема дорог N-ского района изображена в виде графа, в таблице звёздочкой обозначено наличие дороги из одного населённого пункта в другой. Отсутствие звёздочки означает, что такой дороги нет.
Иллюстрация к задаче
Каждому населённому пункту на схеме соответствует номер в таблице, но неизвестно, какой именно номер. Определите, какие номера населённых пунктов в таблице могут соответствовать населённым пунктам B и G на схеме. В ответе запишите эти два номера в возрастающем порядке без пробелов и знаков препинания.
from itertools import permutations
graph_edges = [
    ('A','E'), ('A','C'), ('A','F'),
    ('B','H'), ('B','F'),
    ('C','G'), ('C','F'),
    ('D','E'), ('D','H'),
    ('G','H')
]
table_edges = [
    (1,3), (1,4), (1,6),
    (2,4), (2,7),
    (3,8),
    (5,6), (5,7), (5,8),
    (7,8)
]
vertices = ['A','B','C','D','E','F','G','H']
nums = [1,2,3,4,5,6,7,8]
table_set = {frozenset(e) for e in table_edges}
results = set()
for perm in permutations(nums):
    mapping = dict(zip(vertices, perm))
    mapped = {frozenset((mapping[a], mapping[b])) for a,b in graph_edges}
    if mapped == table_set:
        results.add(mapping['B'])
        results.add(mapping['G'])
print(''.join(str(x) for x in sorted(results)))
Ответ:36
📚 Все задачи с разбором 1
На рисунке изображена схема дорог N-ского района в виде графа, в таблице содержатся сведения о протяжённости этих дорог (в километрах). Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите сумму протяжённостей дорог между пунктами А и В и между пунктами З и К. В ответе запишите целое число.
Иллюстрация к задаче
Сначала считаем, сколько дорог выходит из каждой вершины графа и из каждого номера в таблице.

На графе только вершина Г имеет 5 дорог. В таблице только пункт 4 имеет 5 дорог. Значит, Г = 4.

На графе только вершина Л имеет 2 дороги. В таблице только пункт 2 имеет 2 дороги. Значит, Л = 2.

Вершина Л соединена только с Г и З. В таблице пункт 2 соединён только с 4 и 10. Так как Г = 4, значит, З = 10.

Вершина Г соединена с Л, З, А, В, Ж. В таблице пункт 4 соединён с 2, 10, 6, 8, 9. Мы уже знаем: Л = 2, З = 10. Значит, А, В, Ж — это пункты 6, 8, 9.

Среди А, В, Ж только вершина В имеет 4 дороги. В таблице среди пунктов 6, 8, 9 только пункт 8 имеет 4 дороги. Значит, В = 8.

Вершина В соединена с А, Е, Г, Ж. В таблице пункт 8 соединён с 1, 4, 6, 9. Мы уже знаем: Г = 4. Значит, А, Е, Ж — это пункты 1, 6, 9.

Среди А, Е, Ж только вершина Е имеет 4 дороги. В таблице среди пунктов 1, 6, 9 только пункт 1 имеет 4 дороги. Значит, Е = 1.

Вершина Е соединена с Б, В, Д, И. В таблице пункт 1 соединён с 3, 5, 8, 11. Мы уже знаем: В = 8. Значит, Б, Д, И — это пункты 3, 5, 11.

Пункт 5 соединён с 1, 7, 11. На графе вершина И соединена с Е, М, Д. Значит, И = 5. Тогда М = 7.

Вершина З соединена с Л, Г, М, К. В таблице пункт 10 соединён с 2, 4, 7, 12. Мы уже знаем: Л = 2, Г = 4, М = 7. Значит, К = 12.

Вершина К соединена с З, Ж, М. В таблице пункт 12 соединён с 10, 9, 7. Мы уже знаем: З = 10, М = 7. Значит, Ж = 9.

Из пары А и Ж остался пункт 6, значит, А = 6.

Вершина А соединена с Б, В, Г. В таблице пункт 6 соединён с 3, 8, 4. Мы уже знаем: В = 8, Г = 4. Значит, Б = 3.

Оставшийся пункт 11 — это Д.

Итоговое соответствие: А=6, Б=3, В=8, Г=4, Д=11, Е=1, Ж=9, З=10, И=5, К=12, Л=2, М=7.

А–В = 6–8. В таблице на пересечении 6 и 8 стоит 27.
З–К = 10–12. В таблице на пересечении 10 и 12 стоит 15.

Сумма: 27 + 15 = 42.

Ответ: 42.
Ответ:42