Professional Documents
Culture Documents
INFORMATIKE
7. KOLO
RJEŠENJA
HONI 2009/2010 Zadatak: SPAVANAC
7. kolo, 24. travnja 2010. Autor: Marko Ivanković
Potrebno je samo pažljivo implementirati operaciju "45 minuta prije". Valja
paziti na vremenske raspone s M manje od 45, te posebno na vrijeme od 0:00
do 0:45.
Potrebno znanje:
ucitavanje brojeva, matematicke operacije
Kategorija:
ad-hoc
HONI 2009/2010 Zadatak COKOLADA
7. kolo, 24. travnja 2010. Autor: Leo Osvald
Da bi uopće mogli dobiti dovoljan broj kvadratića čokolade, moramo imati
dovoljno dugačku čokoladu, pa ćemo uzeti najmanje pakiranje koje sadrži
barem K kvadratića tj. najmanju potenciju broja 2 veću ili jednaku K. Uočimo
da sada radi pohlepna strategija. Ako imamo komad čokoladu duljine N i
trebamo dobiti komad čokolode duljine L u najmanje lomljenja, to ćemo dobiti
tako da čokoladu lomimo po pola dok god ne dobijemo duljinu koja je manja
ili jednaka L. U tom trenutku imat ćemo sve komade čija je duljina neka
potencija broja 2 između između L i N-1 (uključivo) i to točno dvaput. Sad
ostaje problem da dobijemo točno N-L kvadratića čokolade. Primijetimo da
lomljenjem čokolade po pola na ovaj način nismo ništa izgubili jer nam uvijek
ostaje ona druga polovica koju onda možemo prelamati kako bi popunili
ostatak (N-L), a komad duljine L ionako moramo dobiti ako na kraju imati
točno K (a ne više) kvadratića čokolade. Kad imamo komad duljine L, situacija
je analogna početnoj, znači ponavljajući ovaj postupak doći ćemo slučaja
kada trebamo dobiti još 0 kvadratića, kada smo gotovi.
Također, primijetimo da nikada nećemo lomiti dva komada iste duljine.
Primjenjujući gore opisan algoritam, matematičkom indukcijom zaključujemo
da ćemo mi u biti lomiti komade čije su duljine uzastopne potencije broja 2,
počevši od N. (*)
Stoga, prelamanja možemo predstaviti binarnim brojem koji sadrži jedinicu
i
na bitu i ako i samo ako smo lomili komad duljine 2 . Ako broj K zapišemo
binarno, ispada da će najmanji komad čokolade koji lomimo imati duljinu koja
je jednaka težina najdesnijeg bita. Zbog (*), minimalni broj lomljenja biti
jednak razlici pozicija najlijevijeg i najdesnijeg bita u binarnoj reprezentaciji
broja K.
Potrebno znanje:
Binarni brojevi, pojam potencije
Kategorija:
pohlepni algoritmi
HONI 2009/2010 Zadatak BAKICE
7. kolo, 24. travnja 2010. Autor: Marko Ivanković
Za početak, izračunajmo za svaku bakicu koliko je udaljena od svih sjedala.
Tada opetovano izvodimo sljedeće, pronalazimo u cijelom prometalu bakicu
najbližu nekom sjedalu. Za nju provjeravamo dolazi li do eksplozije, te ako
dolazi s kojim još bakicama. Tada tu bakicu, i sve eksplodirale, brišemo s
tlocrta zajedno s stolcem. Postupak ponavljamo dok ima bakica i stolaca.
Potrebno znanje:
izračun najkraćeg puta
Kategorija:
najkraći put, pohlepni algoritmi
HONI 2009/2010 Zadatak SVEMIR
7. kolo, 24. travnja 2010. Autor: Goran Žužić
Potrebno je da se, prije rješavanja ovog zadatka, upoznate sa problemom
"Minimum spanning tree" i barem jednim načinom rješavanja, na primjer:
• http://en.wikipedia.org/wiki/Kruskal%27s_algorithm
Sada smo skoro gotovi. Izgradimo graf u kojem veza između dvije planete
postoji ako su susjedni u nekom od nizova te samo pustimo Kruskalov
algoritam da riješi taj graf sa 3N-3 brida u nekoj razumnoj složenosti.
Potrebno znanje:
Kruskalov / Primov algoritam, Minimum spanning tree
Kategorija:
teorija grafova, ad-hoc
HONI 2009/2010 Zadatak KRALJEVI
7. kolo, 24. travnja 2010. Autor: Leo Osvald
Za početak, primijetimo da jednostavnim pamćenjem koordinata svih
kraljeva na ploči, te računanjem udaljenosti svih parova kraljeva oba igrača
2
dolazimo do algoritma složenosti O(N ) koji donosi 30% bodova na ovom
zadatku.
Kategorija:
Dinamičko programiranje
HONI 2009/2010 Zadatak RESTORAN
7. kolo, 24. travnja 2010. Autor: Goran Žužić
Definirajmo stupanj grada kao broj cesta koje završavaju u tom gradu. Dalje,
stvorimo dodatni grad X i spojimo ga na sve gradove koji imaju neparni
stupanj. Sada je jasno da će svaki grad biti parnog stupnja (uključujući i X).
Zbog tog svojstva, sada u svakoj komponenti grafa postoji ciklus koji prolazi
kroz sve bridove i vraća se u početni vrh. Nađemo za svaku komponentu
posebno taj ciklus i alternativno na parnim i neparnim bridovima dajemo
pravo gradnje kompaniji 1 odnosno 2. Više informacija o traženju tog ciklusa
moguće je naći na http://en.wikipedia.org/wiki/Eulerian_path .
Test podaci:
Preostale dvije grupe nose svaka po 40% bodova i jedina razlika među njima
je u broju gradova. Ovo je opis pojedinih test podataka veće od dvaju grupa:
Potrebno znanje:
Eulerov ciklus (postoji i rješenje bez njega!)
Kategorija:
teorija grafova, ad-hoc