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

На ри­сун­ке схема дорог изоб­ра­же­на в виде графа, в таб­ли­це звёздоч­ка­ми обо­зна­че­но на­ли­чие до­ро­ги между населёнными пунк­та­ми. Так как таб­ли­цу и схему ри­со­ва­ли не­за­ви­си­мо друг от друга, ну­ме­ра­ция населённых пунк­тов в таб­ли­це никак не свя­за­на с бук­вен­ны­ми обо­зна­че­ни­я­ми на графе. Вы­пи­ши­те по­сле­до­ва­тель­но без про­бе­лов и зна­ков пре­пи­на­ния ука­зан­ные на графе бук­вен­ные обо­зна­че­ния пунк­тов от П1 до П9: сна­ча­ла букву, со­от­вет­ству­ю­щую П1, затем букву, со­от­вет­ству­ю­щую П2, и т. д.

 

П1П2П3П4П5П6П7П8П9
П1*****
П2*****
П3***
П4**
П5**
П6****
П7***
П8**
П9****

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

Ре­ше­ние.

За­ме­тим, что в таб­ли­це име­ет­ся три на­се­лен­ных пунк­та сте­пе­ни 2. Пунк­ты А и Ж имеют общие до­ро­ги с пунк­том сте­пе­ни 5, а пункт К толь­ко с пунк­та­ми сте­пе­ни 3 и 4. Сле­до­ва­тель­но, пункт П8  — это на­се­лен­ный пункт К. Тогда пункт Е  — это пункт П7, а пункт И  — это пункт П9.

В таб­ли­це есть два пунк­та сте­пе­ни 5, это Г и Д. Так как толь­ко Г имеет общие до­ро­ги с пунк­та­ми сте­пе­ни 2 (А и Ж), то пункт Г это на­се­лен­ный пункт П2. Тогда Д  — это пункт П1.

На­се­лен­ный пункт Ж имеет общие до­ро­ги с пунк­та­ми Г (пункт П2) и И (пункт П9). Сле­до­ва­тель­но, пункт Ж со­от­вет­ству­ет пунк­ту П4. Тогда остав­ший­ся пункт сте­пе­ни 2  — А, это пункт П5.

По­сколь­ку пункт Б имеет общие до­ро­ги с пунк­том А, это на­се­лен­ный пункт П6. Тогда остав­ший­ся пункт В  — это на­се­лен­ный пункт П3.

Со­бе­рем все пунк­ты: П1  — Д, П2  — Г, П3  — В, П4  — Ж, П5  — А, П6  — Б, П7  — Е, П8  — К, П9  — И. Ответ: ДГВ­ЖА­БЕ­КИ.

 

Ответ: ДГВ­ЖА­БЕ­КИ.

 

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

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

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

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

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

таб­ли­ца = '12 13 16 17 19 24 25 26 29 36 37 49 56 78 89' # дуги по таб­ли­це

граф = 'АБ АГ БВ БГ БД ВД ВЕ ГД ГЖ ГИ ДЕ ДИ ЕК ЖИ ИК' # дуги по схеме

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

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

from itertools import permutations

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

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

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

print(''.join(p))


Аналоги к заданию № 64886: 64931 Все