№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-ского района изображена в виде графа, в таблице содержатся сведения о протяжённости каждой из этих дорог (в километрах).
Иллюстрация к задаче
Так как таблицу и схему рисовали независимо друг от друга, нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите, какова сумма протяжённостей дорог из пункта G в пункт E и из пункта F в пункт H. В ответе запишите целое число.
По графу степени вершин: A, C, G, H имеют степень 3, B, D, E, F — степень 2.

По таблице степень 3 имеют пункты 1, 5, 6, 8, степень 2 — пункты 2, 3, 4, 7.

Единственное ребро между вершинами степени 3 в графе — A–G. В таблице единственное ребро между пунктами степени 3 с таким окружением — 1–5 или 5–8, поэтому G соответствует пункту 1, E — пункту 2, F — пункту 7, H — пункту 6.

Тогда G–E = 1–2 = 5, F–H = 7–6 = 30.

Сумма: 5 + 30 = 35.

Ответ: 35.
Ответ:35