KIV/PRO Cvičení
Přátelské mince Mějme nově založený stát – Je potřeba vydat vlastní měnu – Uvažujme pouze mince, bankovky zanedbáme Vstup: – Suma peněz, které chceme pustit do oběhu – Nominální hodnoty mincí – Uvažujme rozumnou vládu – z mincí v daných hodnotách požadovanou sumu sestavit lze. Výstup: – Jaký nejmenší počet mincí je potřeba?
Přátelské mince – alternativa Vstup – Peněženka s určitou množinou mincí M p – Cílová suma Výstup – Množina M m M p, obsahující nejmenší počet mincí takových, že jejich součet je roven cílové sumě
Zlodějův batoh Zloděj dostane hlad a tak se vydá do pekařství s úmyslem co nejlépe si nakrást... – Má batoh s předem danou nosností v kg – Na pultech se nachází různé krabice pečiva – O každé krabici víme, kolik kusů pečiva obsahuje, kolik váží a jaká je její cena – Zloděj může brát krabice buď celé, nebo z nich vzít jen nějakou část obsahu (může pečivo i dělit – např. ukrást půl rohlíku)
Zlodějův batoh Příklad: – Batoh o nosnosti 10 kg – Zboží v pekárně (c k, w k... cena, váha k-té krabice): – Jaké zboží si zloděj odnese, aby jeho činnost byla co možná nejefektivnější? k12345 ckck wkwk 76554
Egyptské zlomky Každý zlomek lze vyjádřit jako sumu různých zlomků s jedničkou v čitateli – Např.: – Jak vytvořit egyptskou reprezentaci daného zlomku?
Volební obvody Vstup: – Přirozené číslo N – Mapa ohodnocených oblastí Sousednost, velikost populace Výstup: – Rozdělení mapy na N volebních obvodů – Obvody musí mít co nejpodobnější celkový počet obyvatel
Volební obvody
Union-Find Problem Nejprve krátké připomenutí MST Kruskalův algoritmus – Máme graf (n uzlů, e hran) – Seřadíme hrany podle hodnocení (e log e) – V každém kroku přidáme nejkratší hranu, pokud by tím nevznikla kružnice v konstruovaném MST (n 2 ) – Celková složitost O(n 2 + e log e) – U řídkých grafů běžně O(n 2 ) Lze to vyřešit nějak lépe?
Union-Find Problem Tři dílčí podproblémy – Make-set... Vytvoří novou množinu – Union... Spojí dvě existující množiny do jedné – Find... Nalezne množinu obsahující daný prvek Cílem je zjevně snížení složitosti těchto podproblémů.
Hlediště Máme hlediště obdélníkového tvaru – Jeden vchod, jehož pozici známe – Obsazená a neobsazená sedadla – Již sedící diváci se při příchodu nového diváka nezvedají -> nemožno projít skrz – Pohyb v hledišti možný pouze ve směru os x, y Úkol: – Kolik dalších diváků se vejde do daného hlediště?
Hlediště Příklad – Hlediště 10x10 – Vchod na pozici [2, 2] – Šedé pozice obsazeny Odpověď? – Do hlediště se vejde ještě 64 diváků.