Search
–> Rozvrh denně dopoledne 9.00 - 11.45, odpoledne 12.30 - 14.30, 14.45 - 16.00. . Úpravy možné po dohodě s lektorem.
–> Učebna KN:E-126, budova E v areálu FEL ČVUT na Karlově náměstí.
Přehled grafových úloh, neformální úvod do asymptotické složitosti, grafy orientované a neorientované, vážené a nevážené, jejich reprezentace v počítači.
Slidy: Úvodní grafový přehled ( pdf).
Lokální zpracování a prohledávání grafu, bezprostřední okolí vrcholů grafu, typická úloha: počet trojúhelníků.
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=769&page=show_problem&problem=5973 http://codeforces.com/contest/813/problem/C https://www.spoj.com/problems/MAKEMAZE/ https://www.spoj.com/problems/ADASEA/ https://www.spoj.com/problems/SPIKES/ http://codeforces.com/contest/710/problem/E http://codeforces.com/gym/101879/problem/C
7 13 4 0 5 0 0 6 3 4 4 2 4 6 3 5 6 3 1 6 4 1 5 6 1 5 0 3
Úloha 1.
Načtěte nevážený graf ze souboru a vypište k každému uzlu jeho seznam hran. Stáhněte si data s obrázky.
Úloha 2.
Načtěte vážený graf ze souboru a vypište k každému uzlu jeho seznam hran. Stáhněte si data s obrázky.
Úloha 3.
V daném grafu zjistěte pro každý možný stupeň uzlu D, kolik je takových hran, jejichž oba koncové uzly mají tento stupeň D. Pro každý stupeň tento počet hran vypište. Porovnejte své výsledky s ukázkovými. Stáhněte si data s obrázky.
Úloha 4.
Jindra vyrazí z uzlu A, který má určitý stupeň D. Pak jde do některého jeho sousedního uzlu B a nezajímá se o stupeň uzlu B. Z uzlu B se přesune do uzlu C, který je sousedem B a není to A. Jindra trvá na tom, že stupeň D startovního uzlu A i stupeň cílového uzlu C musejí být stejné. Určete, kolik je v daném grafu možností procházek podle Jindrových pravidel. Vypište toto jediné číslo na výstup. Stáhněte si data s obrázky.
Úloha 5.
Řekneme, že hrana H je lokálně minimální, pokud její váha je striktně menší než váha kterékoli hrany, která s H sdíli jeden uzel. Najděte v daném váženém grafu všechny lokálně minimální hrany a vypište je v rostoucím lexikografickém pořadí jejich krajních uzlů. Stáhněte si data s obrázky.
Úloha 6.
Určete, kolik je trojúhelníků v každém grafu úlohy 4. Trojúhelník je trojice uzlů, v níž každý uzel sousedí se zbylými dvěma uzly.
vzorová implementace
Úloha 7.
Určete, kolik je kružnic délky 4 v každém grafu úlohy 4. Kružnice nesmí obsahovat příčku, tj. první a třetí uzel v kružnici nesmí spolu sousedit a druhý a čtvrtý uzel v kružnici spolu nesmí sousedit.
BFS a DFS (= Breadth-First Search a Depth-First Search), fronta a zásobník, BFS a vzdálenosti v grafu.
Slidy: Prohledávání grafu
seq.txt
insert <number>
remove
<number>
graph.txt
Graphviz:
Prioritní fronta, halda.
ulohy:
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3644
https://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=1895
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3146
Dijkstrův algoritmus bez prioritní fronty v čase O(N^2).
Slidy: Dijkstrův algoritmus
Data pro testování Dijkstry: txt, výsledek, implementace
Dijkstrův algoritmus s prioritní frontou v čase O(E*log(N)), možná souvislost s Primovým algoritmem.
Data a slidy stejné jako ráno.