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


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

Ком­пью­тер­ная сеть Пен­та­го­на пред­став­ля­ет собой 1000 ком­пью­те­ров, не­ко­то­рые пары из ко­то­рых со­еди­не­ны про­во­да­ми. Хакер Вася на­пи­сал вирус, ко­то­рый каж­дую ми­ну­ту за­ра­жа­ет все ком­пью­те­ры, на­пря­мую со­единённые про­во­дом с уже заражёнными. Из­вест­но, что сеть устро­е­на таким об­ра­зом, что если Вася за­гру­зит свой вирус на любой из ком­пью­те­ров, то через не­ко­то­рое время заражённой ока­жет­ся вся сеть. До­ка­жи­те, что хакер Вася может таким об­ра­зом вы­брать 90 ком­пью­те­ров Пен­та­го­на, что если он за­гру­зит на них вирус од­но­вре­мен­но, то уже через 10 минут заражённой ока­жет­ся вся сеть.

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

Ре­ше­ние.

Каж­дый ком­пью­тер пред­ста­вим вер­ши­ной графа, а со­еди­не­ние про­во­да­ми реб­ром между ними. Из усло­вия сле­ду­ет, что граф связ­ный. По­сле­до­ва­тель­ность вер­шин, в ко­то­рой вся­кие две со­сед­ние вер­ши­ны со­еди­не­ны реб­ром, а ни­ка­кое ребро не при­сут­ству­ет два­жды, на­зы­ва­ют цепью. Цепь, ко­то­рая за­кан­чи­ва­ет­ся в той же вер­ши­не, где она на­ча­лась, на­зы­ва­ют за­мкну­той цепью или цик­лом. Связ­ный граф, в ко­то­ром нет цик­лов, на­зы­ва­ют де­ре­вом.

Если связ­ный граф не яв­ля­ет­ся де­ре­вом, то можно разо­рвать одно из его рёбер, вхо­дя­щих в цикл, не на­ру­шая связ­ность графа. Таким об­ра­зом, разо­рвав при не­об­хо­ди­мо­сти часть рёбер, можно от лю­бо­го связ­но­го графа пе­рей­ти к его остов­но­му де­ре­ву. (Остов­ное де­ре­во опре­де­ле­но не­од­но­знач­но, од­на­ко какое имен­но остов­ное де­ре­во будем рас­смат­ри­вать, не­су­ще­ствен­но.)

Таким об­ра­зом, пе­рейдём к рас­смот­ре­нию 1000-вер­шин­но­го де­ре­ва, по­лу­чен­но­му из на­чаль­но­го графа уда­ле­ни­ем всех цик­лов. Рас­смот­рим в этом графе цепь наи­боль­шей длины X минус A_1 минус A_2 минус \ldots минус A_k минус Y. Воз­мож­ны два слу­чая.

Если k мень­ше или равно 19, то до­ста­точ­но за­ра­зить вер­ши­ну A10 (или любую дру­гую, если даже де­ся­той нет), и через 10 минут вся сеть ока­жет­ся заражённой. Дей­стви­тель­но, так как мы вы­бра­ли цепь наи­боль­шей длины, то в этом слу­чае нет вер­шин на рас­сто­я­нии боль­ше 10 от A10 (иначе можно бы было про­длить путь до этой вер­ши­ны до X или до Y). По­это­му этот слу­чай три­ви­а­лен.

Если k боль­ше или равно 20, то от­де­лим от графа вер­ши­ны X, A_1, \ldots, A_10 и всех, кто свя­зан с ними не через A11 (их не мень­ше 11). Среди отделённых вер­шин нет вер­шин на рас­сто­я­нии боль­ше 10 от A10 (иначе, опять-таки, мы бы по­лу­чи­ли про­ти­во­ре­чие с мак­си­маль­но­стью цепи). Зна­чит, если мы за­ра­зим A10, то вся отделённая часть ока­жет­ся через 10 минут заражённой.

За­ме­тим, что после от­де­ле­ния оста­нет­ся всё ещё де­ре­во, так как остав­ший­ся граф, оче­вид­но, свя­зен. По­вто­рим опи­сан­ную про­це­ду­ру 89 раз. На каж­дом шаге мы либо ис­чер­па­ем ком­пью­те­ры, либо от­де­лим по край­нем мере 89 умно­жить на 11=979 вер­шин, и оста­нет­ся не более 21 ком­пью­те­ра. По­вто­рим для них те же самые рас­суж­де­ния (но те­перь за­ра­зим сред­нюю вер­ши­ну в самом длин­ном пути), и по­лу­чим, что мы как раз вы­бра­ли 90 ком­пью­те­ров, и этого хва­та­ет.

Спрятать критерии
Критерии проверки:

Идея рас­смат­ри­вать самые длин­ные цепи — 2 балла.