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