Cvičení z programování II pro pokročilé

Ve školním roce 2011/2012 vedeme s Vojtou Tůmou speciální cvičení z předmětu Programování II [NPRG031] pro pokročilé studenty, kteří již nasbírali nějaké zkušenosti z programování (třeba v olympiádách a korespondenčních seminářích) a chtěli by se naučit víc.

Viz též letáček :-)

Cvičení se koná každé úterý od 9:00 v S8, kdo chcete chodit, přihlašte se, prosíme, v SISu, nebo napište mail.

Tematicky bude navazovat na Programování I pro pokročilé z minulého semestru, ale jeho absolvování určitě nebude nutné pro účast na tomto cvičení.

Podmínky k získání zápočtu jsou (AND):

Kontakt

Svým cvičícím pište na adresu mami@ucw.cz.

Zápočtový program

Domácí úkoly

Domácí úkoly jsou dvou druhů:

Na získání kýžené stovky bodů bohatě stačí praktické úlohy, pokud je řešíte včas.

Teoretické úkoly

DatumIDBodyPříklady
28. 2. funrb7Co dělá funkce rb() z letáčku?
funflr10Co dělá funkce flr() z letáčku? Jakou má časovou složitost?
lib10Knihovna jako na cvičení: dána šířka, minimalizujeme výšku. Ovšem knihy je povoleno skládat i do sloupečků.
20. 3. mlowz7Dokažte, že úloha "A[i,j]=i+j" z cvičení není řešitelná v lepším čase než Θ(n).
mlowr7Dokažte, že úloha "A[i,j]=i+j" není pro matice reálných čísel řešitelná v lepším čase než Θ(n2).
tulow10Dokažte, že sjednocení dvou binárních vyhledávacích stromů nelze spočítat rychleji než v lineárním čase.
3. 4. mezim10Domyslete detaily úlohy o mezimatičí s největším součtem.

Co jsme dělali

datum co se cvičilo
21. 2. Dynamické programování poprvé: rozklad textu na slova, optimalizování mobilnice.
28. 2. DP podruhé: úlohy o knihovnách.
6. 3. Dominové kostky: kdy jde složit cyklického hada? Nebo více hadů? Jak vybrat po jedné kostce z každé hromádky a složit z nich cyklického hada? Optimální vyhledávávací stromy pro dané četnosti.
13. 3. Nejdelší 4-cyklus v grafu s omezenými stupni. Turnaje, silná souvislost a polosouvislost. Překážkový běh mřížkou po kombinatoricku. Výpočet kombinačního čísla modulo p.
20. 3. Mějme matici celých čísel rostoucích v řádcích a sloupcích; existují i,j taková, že A[i,j]=i+j?
27. 3. Kolik v řetězci existuje podřetězců obsahujících všechna písmena abecedy? Podmatice s dírou a největším součtem. Kolik obdélníků leží přes dané políčko?
3. 4. Ještě jednou děravé podmatice. Počet úseků s daným mediánem.
10. 4. Vlk a vajíčka, počítání dělitelů. Chemikálie v ledničce.
17. 4. Jak zorientovat rovinný graf, aby z každého vrcholu odcházely nejvýše 3 hrany?
24. 4. Jak rozdělit množinu bodů na dvě středově symetrické? Řezání trámu.
1. 5. Cvičení odpadá kvůlivá státnímu svátku.
8. 5. Cvičíme totéž, co minule :-)
15. 5. Ještě jednou řezání trámů. Rozklad RLE-komprimovaného obrázku na souvislé oblasti (s Union-Findem i bez něj).
22. 5. Problém malíře kvadrantisty. Transformování kvadrantových obrázků (a trocha algebry okolo). Jak ve stromu najít cestu dané délky?
Stránku spravuje Martin Mareš