Hvordan løse dette algoritmisk problem - Gopher 2

stemmer
0

Jeg prøver å løse dette problemet https://open.kattis.com/problems/gopher2 :

Gopher familien, etter å ha avverget canine trusselen, må møte en ny rovdyr.

Det er 𝑛 jordrotter og 𝑚 gopher hull, hver med distinkte (𝑥, 𝑦) koordinater. En hauk kommer, og hvis en gopher ikke når et hull i 𝑠 sekunder det er utsatt for å bli spist. Et hull kan spare på det meste en gopher. Alle jordrotter kjøre på samme hastighet 𝑣. Gopher familien trenger en flukt strategi som minimerer antall sårbare>> jordrotter.

t reduserer antall sårbare jordrotter.

Den rå kraft tilnærming ville være å finne alle mulige hull nås for hvert gopher, så finne alle distinkte (gopher, hull) par.

Er det en raskere algoritme?

Publisert på 02/12/2019 klokken 23:57
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Dette kan bli formulert som en forekomst av det maksimale cardinality tilpasningsproblem på en todelt graf.

La Avær settet av jordrotter og Bvære mengden av hullene. Det er en kant fra Gopher a ∈ Atil hull b ∈ Bhvis avstanden mellom dem er høyst s*v, dvs. den maksimale avstanden en gopher kan kjøre i den tilgjengelige tiden.

En løsning består av en maksimal størrelse undergruppe av kantene i denne grafen, slik at (1) hver a ∈ Ahar høyst en kant, (2) hver b ∈ Bhar høyst en kant. Begrensningene representerer de regler som hver gopher kan bare gå til ett hull, og hvert hull kan i kun en gopher. Antall "sårbare" jordrotter er da antallet jordrotter minus antallet av kanter i den samsvarende.

Grafen tar O ( mn ) tid til konstruksjonen, og en maksimal Kardinaliteten samsvar kan finnes i O ( mn ) tid eller mindre ved hjelp av en standard algoritme, for eksempel Ford-Fulkerson , hvor m er antallet jordrotter, og n er antallet hull.

Hvis det ikke er effektiv nok for online dommer, kan du bruke en mer effektiv algoritme for å finne den som passer, og en mer effektiv måte å finne kantene i grafen, for eksempel ved hjelp av et firertre å spørring som hull er innenfor avstand s*vfra en gopher på under O ( n ) tid.

Svarte 03/12/2019 kl. 00:29
kilden bruker

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