Задания
Версия для печати и копирования в MS Word
Тип 1 № 47205
i

На ри­сун­ке схема дорог Н-⁠ского рай­о­на изоб­ра­же­на в виде графа, в таб­ли­це со­дер­жат­ся све­де­ния о про­тяжённо­сти каж­дой из этих дорог (в ки­ло­мет­рах).

 

П1П2П3П4П5П6П7
П1393
П23985
П332
П4853
П552130
П622113
П7533013

 

Так как таб­ли­цу и схему ри­со­ва­ли не­за­ви­си­мо друг от друга, то ну­ме­ра­ция населённых пунк­тов в таб­ли­це никак не свя­за­на с бук­вен­ны­ми обо­зна­че­ни­я­ми на графе. Опре­де­ли­те, ка­ко­ва сумма про­тяжённо­стей дорог из пунк­та D в пункт B и из пунк­та F в пункт A.

В от­ве­те за­пи­ши­те целое число.

Спрятать решение

Ре­ше­ние.

За­ме­тим, что B  — един­ствен­ная вер­ши­на сте­пе­ни 2, не свя­зан­ная с дру­ги­ми вер­ши­на­ми сте­пе­ни 2. Зна­чит, вер­ши­на B со­от­вет­ству­ет П4. Вер­ши­на F  — един­ствен­ная вер­ши­на сте­пе­ни 3, свя­зан­ная с двумя вер­ши­на­ми сте­пе­ни 2. Сле­до­ва­тель­но, вер­ши­на F со­от­вет­ству­ет П2. Вер­ши­на B свя­за­на толь­ко с вер­ши­на­ми F и D, зна­чит, вер­ши­на D со­от­вет­ству­ет П7. Вер­ши­на A  — един­ствен­ная вер­ши­на сте­пе­ни 3, свя­зан­ная и с вер­ши­ной D, и с вер­ши­ной F. Сле­до­ва­тель­но, вер­ши­на A со­от­вет­ству­ет П5.

Тогда сумма про­тяжённо­стей дорог из пунк­та D в пункт B и из пунк­та F в пункт A равна 53 + 5  =  58.

 

Ответ: 58.

 

При­ведём дру­гое ре­ше­ние Кра­силь­ни­ко­ва Юрия языке Python.

import itertools

graph={'A':'DEF','B':'DF','C':'FG','D':'ABE','E':'ADG','F':'ABC','G':'CE'}

matrix=(

'.WW....' +

'W..WW..' +

'W....W.' +

'.W....W' +

'.W...WW' +

'..W.W.W' +

'...WWW.' )

for p in itertools.permutations(graph):

mymatrix = ''

for x in p:

for y in p:

mymatrix += 'W' if y in graph[x] else '.'

if matrix==mymatrix:

print(p) #На­зва­ния на­се­лен­ных пунк­тов вы­во­дят­ся по по­ряд­ку, пер­вая буква  — пер­вый пункт, вто­рая  — вто­рой и т. д.

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

def ал­фа­вит(s): return ''.join(sorted(set(s.replace(' ',''))))

# ал­фа­вит - стро­ка из сим­во­лов стро­ки s в ал­фа­вит­ном по­ряд­ке (кроме про­бе­ла)

def дуги(s): return set(map(ал­фа­вит,s.split()))

# дуги - мно­же­ство дуг графа (пар сим­во­лов), каж­дая пара упо­ря­до­че­на по ал­фа­ви­ту

таб­ли­ца = '12 13 24 25 36 47 56 57 67' # дуги по таб­ли­це

граф ='AD AE AF BD BF CF CG DE EG' # дуги по схеме

# Не надо бо­ять­ся вклю­чить одну дугу два­жды (напр., БД и ДБ). Глав­ное - ни­че­го не про­пу­стить.

print(ал­фа­вит(таб­ли­ца)) # за­го­ло­вок

from itertools import permutations

for p in permutations(ал­фа­вит(граф)): # все воз­мож­ные пе­ре­ста­нов­ки бук­вен­ных обо­зна­че­ний

та­б­транс = str.maketrans(''.join(p),ал­фа­вит(таб­ли­ца)) # таб­ли­ца транс­ля­ции

if дуги(таб­ли­ца) == дуги(граф.translate(та­б­транс)): # если мно­же­ства дуг сов­па­да­ют

print(''.join(p),

'DB -','DB'.translate(та­б­транс),

'FA -','FA'.translate(та­б­транс))

 

До­ро­га DB - это до­ро­га 74 дли­ной 53, до­ро­га FA - это до­ро­га 25 дли­ной 5. Сумма длин этих дорог - 58.

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ−2023 по ин­фор­ма­ти­ке
Раздел кодификатора ФИПИ: 1.3.1 Опи­са­ние ре­аль­но­го объ­ек­та и про­цес­са