Jak vyřešit tento problém algoritmické - Gopher 2

hlasů
0

Snažím se vyřešit tento problém https://open.kattis.com/problems/gopher2 :

Rodina gopher, že odvrátil psí hrozba musí čelit nové dravce.

Níže jsou uvedeny 𝑛 gophery a 𝑚 gopher otvory, každý v různých (𝑥, 𝑦) souřadnic. Hawk přichází i v případě, že sysel nedosáhne díru v 𝑠 sekund je náchylnější k být jeden. Otvor lze uložit nejvýše jeden Gopher. Všechny Gophers spustit současně 𝑣 rychlosti. Rodina hlodavec potřebuje únikovou strategii, která minimalizuje počet ohrožených>> gophery.

t minimalizuje počet citlivých gophery.

Tento přístup hrubou silou by bylo najít všechny možné díry dosažitelné pro každý gopher, pak zde všechny odlišné (Gopher díra) páry.

Existuje rychlejší algoritmus?

Položena 02/12/2019 v 23:57
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

To může být formulována jako instance maximální problému mohutnost odpovídající na bipartitního grafu.

Dovolit Aje množina syslů a Bje množina otvorů. Tam je okraj od gopher a ∈ Ado otvoru b ∈ Bv případě, že vzdálenost mezi nimi je nejvýše s*v, tedy maximální vzdálenosti, hlodavec lze spustit v dostupné době.

Roztok se skládá z maximální velikosti podmnožiny hran v tomto grafu, tak, že (1), každý a ∈ Amá maximálně jeden okraj (2), každý b ∈ Bmá nejvýše jednu hranu. Omezení představují pravidla, která každý hlodavec může jít jen jedním otvorem, a každá díra vejde pouze jeden Gopher. Počet „zranitelných“ gophery je pak počet syslů minus počet hran v párování.

Graf se O ( mn ) čas ke konstrukci, a odpovídající maximální mohutnost lze nalézt v O ( mil ) čas nebo méně za použití standardního algoritmu, jako je Ford-Fulkerson , kde m je počet syslů a n je počet díry.

Pokud tomu tak není dostatečně účinné pro online soudce, můžete použít efektivnější algoritmus najít shodu a efektivnější způsob, jak najít hran v grafu, například pomocí QuadTree k dotazu, které díry jsou v docházkové vzdálenosti s*vz A hlodavec za méně než O ( n ) čas.

Odpovězeno 03/12/2019 v 00:29
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more