Letní soustředění programátorů 2011

Janské Lázně, ŠvP Duncan

Zadání úložek

mj0: výměna
Vymyslete, jak vyměnit hodnoty ve dvojici proměnných bez použití třetí.
mj1: mergesort
Implementujte mergesort.
mj2: Lloydova 8
Implementujte.
mj3: Mosty
Vymyslete algoritmus na hledání mostů v grafu
mj4: Směnárna
Je zadaná matice převodů mezi měnami, vymyslete algoritmus, který zbohatne.
mq1: Hledání cyklů
Nalezněte v zadaném grafu libovolný cyklus
mq2: Záporný Dijkstra
Určete, co se stane, když je v grafu procházeném Dijkstrou záporná hrana.
mj5: Zkracování
Dokažte, že pokud bezeztrátový kompresní algoritmus nějaký vstup zkrátí, tak jiný musí nutně prodloužit.
mq3: AVL
Implementujte AVL strom s operacemi Find, Insert a Delete.
mq4: hešovací funkce
Implementujte hešovací funkci.
mj6: Prefix
Navrhněte prefixový kód, kterým zakódujete všechna přirozená čísla … co nejefektivněji.
mq5: Transpozice
Implementujte nejkratší program, který ztransponuje vstupní soubor. To znamená, že z řádků udělá sloupce. Příliš krátké řádky doplňte mezerami. Program dlouhý 264 bajtů dostane 4 body, program kratší dostane víc, program delší dostane míň.
mj7: KMP
Implementujete KMP.
mq6: Trojice
Házíme mincí panna-orel. Když padne trojice XYZ, skončíme; když padne ABC, skončíme (mezi ABCXYZ a PO nějaké mapování). Nalezněte XYZ a ABC takové, že mají různou pravděpodobnost hození.