На рисунке изображена схема дорог \(N\)-ского района в виде графа, цифры в ячейках таблицы обозначают протяжённость дорог между пунктами. Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе.
|
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Определите, какова сумма протяжённостей дорог из пункта G в пункт E и из пункта F в пункт H. В ответе запишите целое число.
Решение:
Ручное решение. Вершины E и F — единственные двойные вершины, связанные между собой. Из таблицы легко получаем, что это вершины номер \(2\) и \(4.\) Вершина \(2\) связана также с вершиной \(3,\) а вершина \(4\) связана вершиной \(7.\) Поэтому $$(23) + (47) = 15 + 13 = 28$$
Программное решение.
Python
from itertools import permutations
table = {1: [3, 6, 8], 2: [3, 4], 3: [1, 2, 6], 4: [2, 7], 5: [6, 7], 6: [1, 3, 5], 7: [4, 5, 8], 8: [1, 7]}
graph = {'A': set('CDG'), 'B': set('CH'), 'C': set('ABG'), 'D': set('AH'),
'E': set('FG'), 'F': set('EH'), 'G': set('ACE'), 'H': set('BDF')}
for p in permutations('ABCDEFGH'):
tmp = {p[k-1]: set(p[x-1] for x in v) for k, v in table.items()}
if tmp == graph:
print('1 2 3 4 5 6 7 8')
print(*p)
Вывод программы
1 2 3 4 5 6 7 8 A E G F B C H D 1 2 3 4 5 6 7 8 C E G F D A H B
$$(23) + (47) = 15 + 13 = 28$$
Ответ: \(28\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене