Čínský mobil

Na cvičení proběhl rozbor řešení úlohy na dynamické programování.

Zadání úlohy je v CodExu. Značíme-li počet kláves jako K a počet znaků jako S, jsou hlavní ideje řešení následující:

  1. - použijeme tabulku velikosti K x S(K řádků a S sloupců)
  2. - buňka na pozici [i,j] obsahuje údaj o optimální ceně pro podúlohu, kdy bereme symboly pouze po j-tý znak dělíme je na i tlačítek
  3. - první řádek snadno vyplníme - jde o úlohu, kdy dáváme všechny symboly až po j-tý na jedno tlačítko
  4. - každý další řádek vyplňujeme s použitím hodnot z předchozího řádku. Zkoumáme vlastně jak rozšířit optimální řešení pro i tlačítek o další tlačítko. Ze všech možných způsobů jak to lze udělat přitom vybíráme ten nejlevnější.
  5. - můžeme si předem předpočítat tabulku velikosti S x S cen všech možných tlačítek, ve které buňka [i,j] obsahuje cenu tlačítka, které začíná i-tým symbolem a končí j-tým

Topologické třídění

Byl probrán algoritmus na topologické třídění.

Hlavní myšlenkou algoritmu je použít DFS a číslovat uzavřené vrcholy (takové, jejichž všechny sousedy už jsme prošli).

Pokud chcete znát detaily, mohou vám pomoct tyto studijní materiály k nejrůznějším algoritmům včetně topologického třídění.

Anketa

V závěru cvičení proběhla studentská anketa týkájící se cvičení.