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

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

Каж­до­му населённому пунк­ту на схеме со­от­вет­ству­ет номер в таб­ли­це, но не­из­вест­но, какой имен­но номер. Опре­де­ли­те, какие но­ме­ра населённых пунк­тов в таб­ли­це могут со­от­вет­ство­вать населённым пунк­там C и E на схеме. В от­ве­те за­пи­ши­те эти два но­ме­ра в воз­рас­та­ю­щем по­ряд­ке без про­бе­лов и зна­ков пре­пи­на­ния.

 

П1П2П3П4П5П6П7
П1
П2
П3
П4
П5
П6
П7

 

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

Ре­ше­ние.

На схеме име­ет­ся 3 на­се­лен­ных пунк­та сте­пе­ни 2 и 4 на­се­лен­ных пунк­та сте­пе­ни 3. У на­се­лен­ных пунк­тов D и A есть до­ро­ги с двумя пунк­та­ми сте­пе­ни 2 и одним пунк­том сте­пе­ни 3. У на­се­лен­ных пунк­тов E и C общие до­ро­ги с двумя пунк­та­ми сте­пе­ни 3 и одним пунк­том сте­пе­ни 2. По таб­ли­це на­хо­дим, что пунк­ты П2 и П4 (оба сте­пе­ни 3) имеют общие до­ро­ги с двумя пунк­та­ми сте­пе­ни 3 и одним пунк­том сте­пе­ни 2, сле­до­ва­тель­но, это и есть пунк­ты E и С.

 

Ответ: 24.

 

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

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

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

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

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

таб­ли­ца = '14 15 23 24 27 37 45 56 67' # дуги по таб­ли­це

граф ='AB AC AF BC CE DE DF DG EG' # дуги по схеме

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

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

from itertools import permutations

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

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

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

print(''.join(p),'CE'.translate(та­б­транс))


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