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

На ри­сун­ке схема дорог изоб­ра­же­на в виде графа, в таб­ли­це со­дер­жат­ся све­де­ния о длине этих дорог в ки­ло­мет­рах. Так как таб­ли­цу и схему ри­со­ва­ли не­за­ви­си­мо друг от друга, ну­ме­ра­ция населённых пунк­тов в таб­ли­це никак не свя­за­на с бук­вен­ны­ми обо­зна­че­ни­я­ми на графе. Из­вест­но, что до­ро­га АБ длин­нее до­ро­ги ЖИ. Опре­де­ли­те длину до­ро­ги ВД.

 

П1П2П3П4П5П6П7П8
П181120
П219282915
П3819129
П411281226
П5181614
П620261832
П729163217
П81591417

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

Ре­ше­ние.

За­ме­тим, что в таб­ли­це име­ет­ся толь­ко один пункт сте­пе­ни 4, име­ю­щий до­ро­ги с на­се­лен­ны­ми пунк­та­ми сте­пе­ни 3, это на­се­лен­ный пункт А, ему со­от­вет­ству­ет пункт П6. Также в таб­ли­це име­ет­ся толь­ко один пункт сте­пе­ни 4, име­ю­щий до­ро­ги с на­се­лен­ны­ми пунк­та­ми толь­ко сте­пе­ни 4, это на­се­лен­ный пункт И, ему со­от­вет­ству­ет пункт П2.

В таб­ли­це име­ет­ся два пунк­та сте­пе­ни 3, это пунк­ты В и Г, им могут со­от­вет­ство­вать пунк­ты П1 и П5. На­се­лен­ным пунк­там Б и Ж могут со­от­вет­ство­вать пунк­ты П4 и П7.

Рас­смот­рим пункт Б. Он может быть пунк­том П4, тогда длина до­ро­ги АБ равна 26. Также может быть пунк­том П7, тогда длина до­ро­ги АБ 32.

Рас­смот­рим пункт Ж. Он может быть пунк­том П4, тогда длина до­ро­ги ЖИ равна 28. Также может быть пунк­том П7, тогда длина до­ро­ги ЖИ 29.

По усло­вию за­да­чи до­ро­га АБ длин­нее до­ро­ги ЖИ, тогда пункт Б может со­от­вет­ство­вать толь­ко пунк­ту П7, так как длина до­ро­ги П6–П7 боль­ше длин дорог П2–П4 и П2–П7. Тогда на­се­лен­ный пункт Б со­от­вет­ству­ет пунк­ту П7, на­се­лен­ный пункт Ж со­от­вет­ству­ют пунк­ту П4.

На­се­лен­ный пункт В имеет общие до­ро­ги с пунк­та­ми А и Б (пунк­ты П6 и П7), ему со­от­вет­ству­ет пункт П5.

На­се­лен­ный пункт Д имеет общие до­ро­ги с В, Б и И (пунк­ты П5, П7 и П2), ему со­от­вет­ству­ет пункт П8.

Длина до­ро­ги ВД (пунк­ты П5 и П8) равна 14.

 

Ответ: 14.

 

При­ведём ре­ше­ние Ивана Но­ви­ко­ва на языке Python.

from itertools import *

a = '346 3478 1248 1236 678 1457 2568 2357'.split()

b = 'жа аб би иж жг га ав вб бд ди ие еж ге ед дв'.split()

print(*range(1 , 9))

for i in permutations('абв­где­жи'):

if all(str(i.index(b1) + 1) in a[i.index(b2)] for b1 , b2 in b):

print(*i)

 

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

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

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

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

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

таб­ли­ца = '13 14 16 23 24 27 28 34 38 46 56 57 58 67 78' # дуги по таб­ли­це

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

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

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

from itertools import permutations

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

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

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

print(''.join(p),

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

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

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


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