Sample Solutions CTU Open Contest 2011. ANALOG CLOCK.

Slides:



Advertisements
Podobné prezentace
Konstrukce trojúhelníku 5. ročník
Advertisements

Konstrukce trojúhelníků
NEJKRATŠÍ CESTY MEZI VŠEMI UZLY
Lomené výrazy – sčítání a odčítání lomených výrazů
Stavový prostor. • Existují úlohy, pro které není k dispozici univerzální algoritmus řešení • různé hry • problém batohu, problém obchodního cestujícího.
Zajímavé aplikace teorie grafů
MATLAB LEKCE 7.
Cvičení Úloha 1: Rozhodněte zda posloupnost znaků v poli délky n tvoří palindrom (slovo, které je stejné při čtení zprava i zleva). Př.: [a,l,e,l,a] [a,n,n,a]
Diskrétní matematika Opakování - příklady.
Dynamické programování Programovací technika pro řešení takových optimalizačních úloh, u nichž platí, že úloha se dá rozložit na menší podúlohy, z jejichž.
Aplikace teorie grafů Základní pojmy teorie grafů
PA081 Programování numerických výpočtů
Třídění Seminář IVT. Definice uspořádání skupiny dat (záznamů) dle daného klíče vzestupně (od nejmenší do největší hodnoty klíče) sestupně (od největší.
Sample Solutions CTU Open Contest 2012 Czech Technical University in Prague.
Algoritmy I Cvičení č. 4.
Algoritmy I Cvičení č. 3.
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
LOGISTICKÉ SYSTÉMY 7/14.
Jazyk vývojových diagramů
Řadicí algoritmy autor: Tadeáš Berkman.
KIV/PRO Cvičení Nalezení maxima Nalezněte (co nejefektivněji) maximum v následující posloupnosti: – 2; 12; 8; 39; 9; 4; 3; 20; 28; 19;
doc. RNDr. Zdeněk Botek, CSc.
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
2.1.2 Graf kvadratické funkce
Datové struktury a algoritmy Část 12 Výpočetní geometrie Computational Geometry Petr Felkel.
1 Jádro polygonální oblasti 36VGE ZS 2007/2008 FEL ČVUT Roman Hocke.
L i n e á r n í r o v n i c e II. Matematika 8.ročník ZŠ
Sample Solutions CTU Open Contest 2014 Czech Technical University in Prague.
KIV/PPA1 cvičení 7 Cvičící: Pavel Bžoch. Osnova cvičení Zadání samostatné práce –Vysvětlení nejasností –Způsob odevzdání –Hodnocení Řazení Vyhledávání.
Algoritmizace a programování Třídící algoritmy - 12
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ ŘAZENÍ PRVKŮ – OPAKOVANÝM VÝBĚREM NEJVĚTŠÍHO PRVKU (SELECTSORT) Vytvořila: RNDr. Ivanka Dvořáčková Gymnázium K. V.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Sorty Bubble, Insert a Quick
Škola: Střední škola právní – Právní akademie, s.r.o. Typ šablony: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Projekt: CZ.1.07/1.5.00/
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Pavel Najman. Obchodní akademie a Střední odborná škola logistická, Opava, příspěvková.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
doc. RNDr. Zdeněk Botek, CSc.
1 / 9X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
KIV/PRO Cvičení Nejkratší cesta Vstup – N měst – Mezi některými dvojicemi měst vedou obousměrné silnice, zadány délky cest Výstup – Nejkratší.
Grafický zápis algoritmů (vývojové diagramy) Test na trojúhelník (trojúhelníková nerovnost) Maximum ze tří čísel s použitím pomocné proměnné Pravoúhlý.
Gradientní metody Metoda největšího spádu (volný extrém)
Užití poměru (graficky)
Matematika 8.ročník ZŠ L i n e á r n í r o v n i c e I. Creation IP&RK.
Radim Farana Podklady pro výuku
doc. RNDr. Zdeněk Botek, CSc.
Sample Solutions CTU Open Contest Alea Alea  Vygenerování posloupnosti hodů  Zkoušení všech možností  Již spočítané varianty se ukládají (dynamické.
Slovní úlohy Dělitelnost
Elektronické učební materiály - II. stupeň Matematika Autor: Mgr. Radek Martinák Společný násobek a dělitel - co jsou násobky čísel? - dokážeme najít společné.
Algoritmizace a programování Pole – Příklady 3. Třídění polí V poli máme prvky a chceme je setřídit: V poli máme prvky a chceme je setřídit: od nejmenšího.
Elektronické učební materiály - II. stupeň Matematika Autor: Mgr. Radek Martinák Společný násobek a dělitel - co jsou násobky čísel? - dokážeme najít společné.
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
Množina bodů dané vlastnosti
L i n e á r n í r o v n i c e II. Matematika 8.ročník ZŠ
Elektronické učební materiály – II. stupeň Matematika 7 1. ???
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Operační výzkum Lineární programování Dopravní úloha nevyrovnaná.
SINUS OSTRÉHO ÚHLU PRAVOÚHLÉHO TROJÚHELNÍKU
Konstrukce trojúhelníku
Rekurze.
Další typy dopravních problémů
Matematika 8.ročník ZŠ L i n e á r n í r o v n i c e I. Creation IP&RK.
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Množina bodů dané vlastnosti
ALG 07 Selection sort (Select sort) Insertion sort (Insert sort)
Základní zpracování dat Příklad
Algoritmizace a datové struktury (14ASD)
Opakování na 2.písemnou práci
Algoritmizace Dynamické programování
Množina bodů dané vlastnosti
Transkript prezentace:

Sample Solutions CTU Open Contest 2011

ANALOG CLOCK

Analog Clock  Prostě to “jen” poslechnout a naimplementovat…  Úhel malé ručičky: 30°.H + 0,5°.M  Úhel velké ručičky:6°. M

COLLATZ CONJ.

Collatz Conjecture  Stačilo nasimulovat a hledat  Jak poznat první společné číslo?  Hledáme v mapě  Nebo si všimneme, že konec je vždy stejný => dojdeme na 1 a „couváme“, dokud jsou čísla stejná

Collatz Conjecture  Měla to být jednoduchá úloha…  … ale Collatzova posloupnost je záludná  V čem byl teda problém?   …   …  NESTAČÍ NÁM INTEGER!!! (=> long)

ENCRYPTION

Encryption  Poměrně jednoduchá úloha …  … mírně zkomplikovaná „vylepšením“ zadání na poslední chvíli

GRADIENT

Mine the Gradient  Největší čtverec vyplněný gradientem  Budeme zkoušet všechny? To asi ne…  Dynamické programování

Mine the Gradient  Pro každé políčko spočítáme údaj:  Jaký největší čtverec v něm končí?  To zjistíme v konstantním čase  Podle políček vlevo a nahoře  Plus protilehlý roh

Mine the Gradient 6 4

6 45

6 6

6 67

Mine the Gradient – kód max[i][j] = checkSmall(dir, i, j); if (max[i][j] > best) best = max[i][j]; int m = Math.min(max[i-1][j], max[i][j-1]); if (m < 3) continue; int d = pic[i-1][j-1] - pic[i-2][j-2]; if (pic[i][j] - pic[i-1][j-1] != d) continue; max[i][j] = (pic[i-m][j-m] + m*d == pic[i][j]) ? m+1 : m; if (max[i][j] > best) best = max[i][j];

INVASION

Invasion  Graf  Hledáme vrcholy s nejkratší vzdáleností menší než K  => Dijsktrův algoritmus

Invasion  Dijsktrův algoritmus – inicializace  Na začátku všechna města +∞ (nebo K)  Pro každou novou základnu  Nastavím její ohodnocení na 0  Pustím algoritmus (relaxaci), dokud se nezastaví  … atd.

Invasion  Efektivita  Stačí toto jednoduché řešení  Vrcholy se vzdáleností < K  Neměli bychom je po každé základně počítat znovu  Pamatujeme si počet a aktualizujeme

MORTGAGE

Intergalactic Mortgage  Udržujeme stav dluhu (B)  Na konci každého měsíce  Přičteme úrok: B = B.(1+r/12)  Odečteme splátku: B = B – Y  Ale smyčkou se to nestihne…

POLYGON

Simple Polygon  Kontrolujeme průsečík dvojic úseček  Ale opět nikoli každá s každou…  => „Zametací přímka“

Simple Polygon  Zametací přímka  Udržujeme seřazený seznam úseček  protínajících přímku  aktualizujeme (log N)  => Složitost O(N. log N)

Simple Polygon

RESULT * 7 * * * 3

Ambiguous Result  Dynamické programování  Vyzkoušíme nejlepší řešení pro každou část výrazu (od–do)  Postupně od kratších k delším

Ambiguous Result  Jak zjistím nejlepší výsledek pro část výrazu I až J ?  Postupně zkusím rozdělovat:  (I až k) + (k až J)  (I až k) * (k až J) * 7 * * * 3 IJ k

Ambiguous Result  Jak zjistím nejlepší výsledek pro část výrazu I až J ?  Postupně zkusím rozdělovat:  (I až k) + (k až J)  (I až k) * (k až J) * 7 * * * 3 IJ k

Ambiguous Result  Jak zjistím nejlepší výsledek pro část výrazu I až J ?  Postupně zkusím rozdělovat:  (I až k) + (k až J)  (I až k) * (k až J) * 7 * * * 3 IJ k

Ambiguous Result  Ze všech možností rozdělení vybereme nejmenší a největší  Pokud postupujeme od kratších intervalů k delším, tak ty menší už známe

Ambiguous Result  Alternativní řešení  Maximum 1. Násobení nulou 2. Sčítání 3. Ostatní násobení  Maximum  Analogicky

DOMINO TILING

Domino Tiling  Prostě to zkoušíme…  Backtracking  Rozumné ořezávání  … ale byli jsme hodní

Domino Tiling  Jak nejlépe postupovat?  Začnu tím, co má nejméně možností  Kostička, která má nejméně možností  Pole, na které už jde dát jen jedna

Domino Tiling

Autoři úloh Josef Cibulka Jakub Černý Zdeněk Dvořák Martin Kačer Jan Stoklasa Marko Berezovský Jan Katrenic Pavel Kos Radek Pelánek