Charles Explorer logo
🇨🇿

Nejlevnější vaření

Publikace na Matematicko-fyzikální fakulta |
2020

Abstrakt

Článek ze série věnované úlohám Matematické olympiády - kategorie P (programování) diskutuje různé možnosti řešení jedné teoretické soutěžní úlohy z krajského kola konaného ve školním roce 2017/18. Úkolem je nalézt způsob, jak nejlevněji uvařit jídlo pomocí zadaného seznamu receptů. Jsou přitom dány vstupní ceny jednotlivých surovin a jídla uvařená podle jednotlivých receptů můžeme používat jako vstup pro další navazující recepty.

Algoritmy řešící tuto úlohu jsou analogií známých grafových algoritmů pro určení nejkratších vzdáleností v ohodnoceném grafu: algoritmu Bellmanova-Fordova a Dijkstrova. Článek uvádí i stručný nástin těchto dvou grafových algoritmů. Kromě detailního rozboru úlohy najdeme v článku tři základní varianty řešení s různou časovou složitostí.

Dvě z těchto řešení jsou zapsána i ve formě ukázkového programu.