Témata by se neměla moc opakovat, takže jedno téma povoluji nanejvýš třem lidem.
Datum | Obsah |
29. září 2010 | Cvičení odpadá.
|
6. října 2010 | Organizační povídání, opakování
Řešené příklady:- Jak setřídit posloupnost N obecných prvků? [Ο(N2), Ο(N log N)]
- Jak setřídit posloupnost čísel 1..H? [Ο(N+H)]
- Jak setřídit posloupnost čísel 0..232-1 [3*O(N+211), Ο(211)
paměti]
- Jak setřídit posloupnost, kde je každý prvek nejvýš o K míst mimo od své
výsledné pozice? [Ο(N log K) haldou či tříděním po blocích]
|
14. října 2010 | Řešené příklady:- Jak setřídit posloupnost, kde je každý prvek nejvýš o K míst mimo od své
výsledné pozice a K neznáme? [Ο(N log K) umocňováním K]
- Nejkratší cesta v neohodnoceném grafu [Ο(N+M)]
- Nejkratší cesta v ohodnoceném grafu [Ο(N2), Ο(M log N),
Ο(M + N log N)]
- Nejkratší cesta v grafu ohodnoceným celými čísly 1..K [Ο(K(N+M)),
Ο(NK+M)]
- Nejkratší cesta v acyklickém grafu [Ο(N+M)].
|
20. října 2010 | Řešené příklady:- Jak nalézt nejdelší opakující se podslovo ve slově délky N [Ο(N2)
pomocí trie suffixů nebo posunu podslov, Ο(N) pomocí suffixových stromů,
Ο(N log N) pomocí hashování a binárního hledání délky opakujícího se
podslova]
- Jaké hashování zvolit, když je výhodné umět rychle upravovat hash hodnotu
pro přidání písmenka na konec slova nebo odebrání písmenka ze začátku.
- V daném textu délky N vymažte všechny výskyty daného slova. Pozor na to,
že smazáním jednoho výskytu mohou vzniknout výskyty jiné. [Ο(N)]
|
27. října 2010 | Záskok odcvičil Martin Böhm, díky!
Řešené příklady:- Je dané slovo rovno nějaké své netriviální rotaci? [Ο(N)]
- Dostanete seznam slov. Pro každé slovo z něj zjistěte, kolikrát
se vyskytuje v daném textu. [Ο(délka seznamu slov + délka textu)]
- Dostanete slova o celkové délce P písmen z abecedy velikosti A. Setřiďte
tato slova, jak nejrychleji dokážete. [Ο(P + A)]
|
3. listopadu 2010 | Řešené příklady:- Najděte cestu věží na šachovnici s vykouslými protilehlými rohy.
- Najděte pokrytí šachovnice dominovými kostkami 2x1, přičemž některá políčka
šachovnice mohou být vykousnutá. [Ο(N3)]
- Ukažte složitost Dinice [Ο(N2 M)]
- Dokažte, že pro grafy s jednotkovými kapacitami trvá Dinic Ο(N M).
- Dokažte, že pro grafy s jednotkovými kapacitami, které navíc splňují, že
každý vrchol má vstupní nebo výstupní stupeň nejvýše jedna, trvá Dinic
jenom Ο(√N M). [Ukažte, že po √N iteracích následuje už nanejvýš
dalších √N iterací.]
|
10. listopadu 2010 | Řešené příklady:- Na šachovnici o rozměrech NxN jsou některá políčka zakázaná. Rozmistěte
na ni co nejvíc věží, aby se navzájem neohrožovaly. Pokud se věže vidí jenom
skrz zakázané políčko, neohrožují se. [Ο(N3)]
- Naimplementujte Goldbergův algoritmus, aby běžel v čase Ο(N2√M).
- Máte N projektů, za vyřešení každého dostanete sumu ci. Dále máte M zdrojů,
každý vás stojí rj. Na každý projekt i potřebujete nějakou podmnožinu zdrojů
si1,...,sik. Pokud zakoupíte nějaký zdroj, tak ho můžete použít ve všech
projektech. Rozhodněte, jaké projekty vybrat a jaké zdroje zakoupit, abyste pro
vybrané projekty měli všechny zdroje a abyste maximalizovali zist, tj. sumu
zisků vybraných projektů - sumu cen vybraných zdrojů.
|
17. listopadu 2010 | Státní svátek
|
24. listopadu 2010 | Řešené příklady:- Zopakujte si definici Fourierovy transformace, ukažte, že je lineární a má
inverzi.
- Dokažte, že výsledek Fourierovy transformace reálných čísel je
antisymetrický, tj. že
yi = yn-i.
- Pomocí Fourierovy transformace navrhněte algoritmus rychlého násobení
polynomů [Ο(N log N)].
- Pomocí Fourierovy transofrmace navrhněte algoritmus pro spektrální
analýzu zvuku, tj. rozklad daného vzorku na několik sinusovek, jejichž složením
vzorek vznikl.
|
1. prosince 2010 | Řešené příklady:- Převod automatu Aho-Corrasickové na konečný automat bez zpětné funkce.
- Implementace rychlé fourierovy transformace nejprve rekurzivně, potom
iterativně v jednom poli [Ο(N log N)]
- Rekurzivní algoritmus násobení čísel a polynomů, který převede násobení
dvou n-bitových čísel na tři násobení tří n/2-bitových čísel
[Ο(Nlog2 3)]
|
8. prosince 2010 | Komparátorové sítě
Řešené příklady:- Vytvořte sít, která hledá minimum daných prvků [Ο(log N) hladin].
- Vytvořte sít, která zatřídí prvek do setříděné posloupnosti [Ο(log N) hladin].
- Popište bitonické třídění.
- Popište Batcherovo třídění.
|
15. prosince 2010 | Hradlové sítě
Řešené příklady:- Zkonstruujte XOR pomocí čtyř NANDů.
- Popište carry-lookahead sčítačku.
- Popište násobičku s Ο(log N) vrstvami.
- Vytvořte síť počítající zbytek daného čísla po dělení 7.
|
22. prosince 2010 | Řešené příklady:- Výpočet konvexního obalu v čase Ο(N log N) a Ο(N K), kde K je
velikost výsledného obalu.
- Ukažte, že nalézt konvexní obal nelze rychleji než setřídit souřadnice
daných bodů.
- Popište Fortunův algoritmus na nalezení Voroneho diagramu.
|
5. ledna 2010 | NP úplnost a převody
Řešené příklady:- Definice jazyka, TS, P, NTS, NP, NP-těžký problém, NP-úplný problém.
- Ekvivalence certifikátové definice NP a definice pomocí NTS.
- Definice třídy coNP, problém TAUT.
- Definice tříd RP, coRP, ZPP, BPP, PP.
|
12. ledna 2010 | Asymetrické šifrování, RSA a testy prvočíselnosti
Řešené příklady:- Popište veřejný a soukromý klíč RSA a dokažte, že RSA funguje.
- Ukažte, že pokud pošlete stejnou zprávu e příjemcům s veřejnými
klíči s exponentem e, je jednoduché dešifrovat poslanou zprávu.
- Popište Fermatův test prvočíselnosti.
- Popište Rabin-Millerův test prvočíselnosti.
|
Výsledky úkolů se aktualizují z CodExu jednou nočně.