Gróf Központ és annak helyét

Időről időre CodeForces vannak kérdések a középpont, sugár és átmérő (Google akkor is csak fa. Bár több volt). Ez a témakör meghatározásai ezeket a fogalmakat, és ismerteti az algoritmusok a megállapítást.

Feladat. nem adott súlyozott irányítatlan gráf G = (V E). ahol V a csúcsok halmaza, és E - a élek halmaza. Meg kell találni a sugár, átmérő, és a központ.

Adjuk di. j, mint a legrövidebb távolságot a két csúcsot. Ezután az átmérője a gráf úgy definiáljuk, mint a lehető legmagasabb között a legrövidebb távolság párja között csúcsok:

Is, mi a koncepció a különcség csúcsok maximális távolság a vertex más:

Ismerve a excentricitása minden csúcsot lehet meghatározni, és a sugara a grafikon, a minimális közülük:

Azonnal látni fogja, hogy az átmérője a gráf maximális excentricitás a grafikon, azaz:

Center grafikon felhívta az összes csúcsú excentricitás sugarával megegyező gráf:

A meghatározásokat a fej jön triviális algoritmus megtalálásához a központtól, sugár és átmérője tetszőleges gráf algoritmus alkalmazásával Floyd-Uorshella:

Most némileg módosítani a megfogalmazása a probléma: Tegyük fel, hogy a G gráf egy fa. A fa könnyű bizonyítani a következő tény: a csúcsok száma közepén a fa egy vagy kettő.

A CodeForces egyszer hallottam a következő algoritmust találni közepén a fa: segítségével BFS, és minden csúcs (jelöljük v 1), hogy megtalálja a legtávolabb a tetején a v 1 (jelöljük v 2), majd futtassa BFS honnan v 2. választani bármely legtávolabb a tetején a v 2 (legyen ez v 3). Vertex (ek) között félúton v 2 és v 3 formájában egy központ a grafikon, a köztük lévő távolság - az átmérő. A sugár átmérője felét a kerekítve: (átm (G) + 1) / 2 végrehajtásának ez az algoritmus nem kell itt szerepeltetni, mivel úgy tűnt nekem kissé nehézkes. Ehelyett azt, hogy egy másik algoritmust, amely úgy tűnt, hogy nekem könnyebb megvalósítani.

Tétel: Legyen L - a készlet a grafikon levelek. Ha | V | ≤ 2 L a központ a grafikon, vagy eltávolíthatja a leveleket, és a gróf központ nem változik:

Ez a tétel vezet a következő algoritmus: eltávolítja a fa levelei, rétegenként, amíg van ≤ 2 csúcsot. Ezek a felső és középső grafikonon. Az ezen irányelv végrehajtásához algoritmus nagyon hasonlít szélességi keresés:

Könnyen bizonyítani, hogy a kivégzés után az algoritmus, a fa lesz a központja a különböző c. és rad (G) = (átm (G) + 1) / 2.

Kapcsolódó feladatok:

Köszönjük a megjegyzés is a helyesírási, kérjük, írjon a PM.

átmérőjű. sugara. fa. Gróf. fa központ