сайты - меню - вход - но­во­сти


Задания
Версия для печати и копирования в MS Word

В не­ко­то­рой стра­не есть 100 го­ро­дов, ко­то­рые свя­за­ны такой сетью дорог, что из лю­бо­го го­ро­да в любой дру­гой можно про­ехать толь­ко одним спо­со­бом без раз­во­ро­тов. Схема сети дорог из­вест­на, раз­вил­ки и пе­ре­крест­ки сети не­обя­за­тель­но яв­ля­ют­ся го­ро­да­ми, вся­кая ту­пи­ко­вая ветвь сети обя­за­тель­но за­кан­чи­ва­ет­ся го­ро­дом. На­ви­га­тор может из­ме­рить длину пути по этой сети между лю­бы­ми двумя го­ро­да­ми. Можно ли за 100 таких из­ме­ре­ний га­ран­ти­ро­ван­но опре­де­лить длину всей сети дорог?

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

Ре­ше­ние.

Пред­ста­вим опи­сан­ную в усло­вии сеть дорог в виде графа, вер­ши­на­ми ко­то­ро­го яв­ля­ют­ся го­ро­да, раз вилки и пе­ре­крест­ки, а реб­ра­ми  — до­ро­ги. По­ка­жем, что этот граф яв­ля­ет­ся де­ре­вом, то есть связ­ным гра­фом без цик­лов. Связ­ность сле­ду­ет из того, что из лю­бо­го го­ро­да можно про­ехать в любой дру­гой, а любая раз­вил­ка или пе­ре­кре­сток долж­ны быть со­еди­не­ны с каким-либо го­ро­дом. До­пу­стим, что в нашем графе есть цикл. Он не со­дер­жит двух и более вер­шин-го­ро­дов, так как в этом слу­чае, дви­га­ясь в про­ти­во­по­лож­ных на­прав­ле­ни­ях по циклу, мы могли бы по­лу­чить два раз­лич­ных пути из од­но­го го­ро­да в дру­гой. Далее, пусть между не­ко­то­ры­ми го­ро­да­ми A и B су­ще­ству­ет путь, со­дер­жа­щий какую-то вер­ши­ну цикла. Он обя­за­тель­но най­дет­ся, так как иначе эта вер­ши­на не могла бы быть в нашей сети. Но тогда, до­бав­ляя к этому пути «коль­цо» вдоль цикла, мы по­лу­чим еще один путь между A и B. Зна­чит, цик­лов в нашем графе быть не может и это дей­стви­тель­но де­ре­во.

По усло­вию за­да­чи все кон­це­вые вер­ши­ны де­ре­ва  — го­ро­да. На­зо­вем эти го­ро­да кон­це­вы­ми. На­зо­вем также кон­це­вой город B сле­ду­ю­щим за кон­це­вым го­ро­дом A, если по пути из A в B на каж­дой раз­вил­ке вы­би­ра­ет­ся самая пра­вая до­ро­га. Вы­бе­рем какой-ни­будь кон­це­вой город A1 и из­ме­рим рас­сто­я­ние между ним и сле­ду­ю­щим за ним кон­це­вым го­ро­дом A2. Потом из­ме­рим рас­сто­я­ние между A2 и сле­ду­ю­щим за ним кон­це­вым го­ро­дом A3 и так далее. После не более чем 100 таких из­ме­ре­ний мы вер­нем­ся в ис­ход­ный город A1.

По­ка­жем, что при этом каж­дая до­ро­га нашей сети будет прой­де­на ровно два раза в про­ти­во­по­лож­ных на­прав­ле­ни­ях. Рас­смот­рим про­из­воль­ную до­ро­гу. При уда­ле­нии из де­ре­ва лю­бо­го ребра оно рас­па­да­ет­ся на две ком­по­нен­ты связ­но­сти K1 и K2, при­чем каж­дая из них со­дер­жит го­ро­да. Пусть из­на­чаль­но мы на­хо­ди­лись в K1. По­сколь­ку не­об­хо­ди­мо обой­ти все го­ро­да сети, мы долж­ны прой­ти по этой до­ро­ге два раза: пер­вый раз  — когда дви­жем­ся из K1 в K2, а вто­рой  — когда воз­вра­ща­ем­ся об­рат­но. Про­це­ду­ра об­хо­да устро­е­на таким об­ра­зом, что мы по­се­тим все вер­ши­ны ком­по­нен­ты K2 до того, как по­ки­нем ее, по­это­му боль­ше про­хо­дить по до­ро­ге из K1 в K2 не по­тре­бу­ет­ся.

На­ко­нец, сло­жив из­ме­рен­ные ве­ли­чи­ны и раз­де­лив сумму по­по­лам, мы по­лу­чим длину всей сети.

 

Ответ: да, можно.