Editorial for Isplata
Submitting an official solution before solving the problem yourself is a bannable offence.
Analiza
Uočimo da ćemo za fiksno i skup
u optimalnom rešenju iskoristiti:
- najviše jednu novčanicu tipa
(dve
se mogu zameniti jednom
);
- najviše jednu novčanicu tipa
(dve
se mogu zameniti jednom
);
- najviše dve novčanice tipa
(tri
se mogu zameniti jednom
i jednom
), a ako iskoristimo barem dve tada ne koristimo
(dve
i jedna
se mogu zameniti jednom
).
Odavde sledi da u optimalnom rešenju nema prenosa, tj. ako predstavimo , novčanice tipa
koristimo samo kako bismo se rešili člana
. Dakle, optimalno rešenje dobijamo prolaskom kroz
cifru-po-cifru i sabiranjem minimalnog broja novčanica tipa
čiji je zbir
. Na primer, za
biramo skup
,
što dodaje
na konačan rezultat. Sve vrednosti minimalnog broja novčanica za
se lako mogu izračunati:
.
Ovaj zadatak je specijalan slučaj change making problema. Za skup novčanica dat u ovom zadatku, greedy pristup (ponovljeno biranje najvrednije novčanice koja nema vrednost veću od preostale sume) dao bi optimalno rešenje, ekvivalentno gore opisanom. Ipak, ovaj pristup nije optimalan za sve skupove novčanica, pa se ovaj problem u opštem slučaju rešava metodom dinamičkog programiranja.
Comments