68. ročník Matematické olympiády 2018/2019
|
|
- Karolína Kašparová
- před 6 lety
- Počet zobrazení:
Transkript
1 68. ročník Matematické olympiády 2018/2019 Řešení úloh krajského kola kategorie P P-II-1 Tulipány Budeme řešit o něco obecnější úlohu: dovolíme si předepsat, zda má na n-té pozici být tulipán, a pokud ano, zda skupina končící na n-té pozici má mít sudou či lichou délku (všechny ostatní skupiny musí mít délku lichou); do zadání si tedy přidáme ještě jeden parametr p, který může nabývat hodnot prázdný, sudá, či lichá. Řekněme, že bychom uměli úlohu vyřešit pro prvních n 1 čtverečků a každou hodnotu parametru p; nejmenší počty tulipánů v jednotlivých případech označíme t(n 1, prázdný), t(n 1, sudá) a t(n 1, lichá) (v některých z těchto případů nemusí existovat řešení, v tom případě je odpovídající počet tulipánů ). Rozmysleme si nyní, jak určit počet tulipánů t(n, p) pro celý vstup. Jestliže na n-tém čtverečku už je tulipán, nemůže toto políčko být prázdné a t(n, prázdný) =. Skupina končící na n-tém čtverečku bude mít lichou délku, jestliže skupina končící na čtverečku n 1 má délku sudou nebo jestliže na čtverečku n 1 není tulipán, a bude mít sudou délku, jestliže skupina končící na čtverečku n 1 má délku lichou. Proto dostáváme t(n, lichá) = min(t(n 1, prázdný), t(n 1, sudá)), t(n, sudá) = t(n 1, lichá). Jestliže je n-tý čtvereček prázdný, pak můžeme na něj vysadit tulipán (a změnit tak paritu poslední skupiny), nebo ho nechat prázdný (což je ale možné pouze pokud čtvereček n 1 je prázdný nebo jím končí lichá skupina). Dostáváme tedy následující vztahy: t(n, prázdný) = min(t(n 1, prázdný), t(n 1, lichá)), t(n, lichá) = 1 + min(t(n 1, prázdný), t(n 1, sudá)), t(n, sudá) = 1 + t(n 1, lichá). Hodnoty t(n 1, p) můžeme obdobně spočítat z hodnot t(n 2, p), atd. Stačí si tedy tyto hodnoty spočítat postupně od t(1, p) do t(n, p) a vrátit minimum z t(n, prázdný) a t(n, lichá). Vzhledem k tomu, že si vždy stačí pamatovat tři čísla z předchozího kroku, paměťová složitost je konstantní. Program provede pouze jeden průchod nad vstupem, časová složitost je tedy lineární, O(n). 1
2 #include <cstdio> #include <algorithm> using namespace std; #define INF int main (void) int min_prazdny = 0, min_suda = INF, min_licha = INF; char a; while (scanf("%c", &a) == 1 && (a == T a == P )) int prazdny, suda, licha; if (a == T ) prazdny = INF; licha = min(min_prazdny, min_suda); suda = min_licha; else prazdny = min(min_prazdny, min_licha); licha = 1 + min(min_prazdny, min_suda); suda = 1 + min_licha; min_prazdny = prazdny; min_suda = suda; min_licha = licha; printf("%d\n", min(min_prazdny, min_licha)); return 0; 2
3 P-II-2 Ohrada Nejprve si rozmysleme, že pro n = 5 má úloha vždy řešení. To je zjevné, jestliže všech 5 bodů leží na konvexním obalu (pak lze vybrat libovolnou čtveřici bodů). Jestliže na konvexním obalu leží 4 body p 1,..., p 4, pak pátý bod p 5 leží buď uvnitř trojúhelníka p 1 p 2 p 3, nebo uvnitř trojúhelníka p 1 p 4 p 3 ; v prvním případě vrátíme čtveřici p 1 p 4 p 3 p 5, ve druhém čtveřici p 1 p 2 p 3 p 5. Poslední možnost je, že na konvexním obalu leží jen tři body p 1, p 2 a p 3. Bez újmy na obecnosti můžeme předpokládat, že bod p 5 leží uvnitř trojúhelníka p 1 p 2 p 4 (ostatní případy, kdy leží uvnitř trojúhelníka p 2 p 3 p 4 či p 1 p 3 p 4, jsou symetrické). Bez újmy na obecnosti také můžeme předpokládat, že p 5 leží ve stejné polorovině přímky p 3 p 4 jako p 2 (případ, kdy leží ve stejné polorovině jako p 1, je symetrický). Pak můžeme vrátit čtveřici p 2 p 3 p 4 p 5. Pro n 6 stačí aplikovat výše popsaný postup pro pět ze zadaných bodů s nejmenší x-ovou souřadnicí a také vždy dostaneme řešení. Nalezení těchto pěti bodů nám zabere lineární čas a konstantní paměť, rozbor případů z minulého odstavce provedeme v konstantním čase (nebo můžeme prostě vyzkoušet všechny čtveřice z těchto pěti bodů). Časová složitost je tedy O(n), paměťová O(1). #include <cstdio> #include <vector> #include <algorithm> #include <cassert> using namespace std; struct bod int x, y; bod(int _x, int _y) : x(_x), y(_y) bod operator- (const bod &b) const return bod(x - b.x, y - b.y); /* 2D vektorový součin. */ int operator* (const bod &b) const return x * b.y - y * b.x; ; static int sgn(int x) return (x > 0) - (x < 0); /* Vrací, zda je vektor B nalevo či napravo od polopřímky dané vektorem A. */ static int orientace(const bod &a, const bod &b) return sgn(a * b); /* Otestuje, zda bod U je uvnitř úhlu daného vektory A a B. */ static bool uvnitr_uhlu(const bod &a, const bod &b, const bod &u) int or_ab = orientace(a, b); return (or_ab == orientace(a, u) && or_ab == -orientace(b, u)); 3
4 /* Otestuje, zda bod U je uvnitř trojúhelníka ABC. */ static bool uvnitr(const bod &a, const bod &b, const bod &c, const bod &u) return (uvnitr_uhlu(b - a, c - a, u - a) && uvnitr_uhlu(a - b, c - b, u - b)); /* Otestuje, zda je bod U uvnitř konvexního čtyřúhelníka s vrcholy C. */ static bool uvnitr(const vector<bod> &c, const bod &u) assert(c.size() == 4); /* Stačí testovat tři trojice vrcholů -- sjednocení libovolných tří trojúhelníků pokryje celý čtyřúhelník. */ for (int i = 0; i < 3; i++) if (uvnitr(c[i], c[(i+1) % 4], c[(i+2) % 4], u)) return true; return false; /* Otestuje, zda jsou body v mn v konvexní poloze. */ static bool konvexni(const vector<bod> &mn) assert(mn.size() == 4); for (int i = 0; i < 4; i++) if (uvnitr(mn[i], mn[(i+1) % 4], mn[(i+2) % 4], mn[(i+3) % 4])) return false; return true; static bool mensi_x_souradnice(const bod &b1, const bod &b2) return b1.x < b2.x; static void vypis(const vector<bod> &hranice) for (const bod &b : hranice) printf("%d %d\n", b.x, b.y); int main(void) int n; vector<bod> stromy; scanf("%d", &n); for (int i = 0; i < n; i++) int x, y; scanf("%d%d", &x, &y); if (i < 5) stromy.emplace_back(x, y); else vector<bod>::iterator m = max_element(stromy.begin(), stromy.end(), mensi_x_souradnice); 4
5 if (x < m->x) m->x = x; m->y = y; if (n == 4) if (konvexni(stromy)) vypis(stromy); else printf("nelze\n"); return 0; assert(stromy.size() == 5); for (int i = 0; i < 5; i++) vector<bod> bez_iteho; for (int j = 0; j < 5; j++) if (j!= i) bez_iteho.emplace_back(stromy[j]); if (konvexni(bez_iteho) &&!uvnitr(bez_iteho, stromy[i])) vypis(bez_iteho); return 0; abort(); // Sem se program nemůže dostat. 5
6 P-II-3 Úřady Nechť Z je množina měst, do nichž nevchází žádný kanál. Když začneme v libovolném městě a půjdeme proti směru kanálů tak dlouho, jak to půjde, nutně skončíme v Z (nemůžeme se zacyklit, jelikož se vždy přesouváme do města s vyšší nadmořskou výškou). To znamená, že z měst v množině Z se dá po proudu dostat do libovolného jiného města. Jestliže tedy mezi městy v Z nevedou cesty, stačí vypsat množinu Z. Můžeme proto předpokládat, že mezi městy a, b Z vede cesta. Řekněme, že bychom smazali město a (a všechny sousedící cesty a kanály) a v takto modifikované síti našli nějaké řešení U. Tvrdíme, že U je řešením i pro původní síť: Jelikož do b nevstupuje žádný kanál, do b se musí dát dostat z U po cestách, a přidáním cesty ba dostáváme, že se z U dá dostat po cestách i do a. Řešení tedy vždy existuje a nalezneme ho opakováním výše popsaného postupu (který se zastaví nejpozději ve chvíli, kdy zbývá už jen jedno město). Jak ho implementovat efektivně? Budeme si pamatovat seznam cest spojujících města, z nichž nevychází žádný kanál. Vždy když smažeme město a, projdeme si všechna města do nichž vede z a kanál, a ověříme, zda do nich nyní žádný kanál nevede. Pokud ano, projdeme všechny sousední cesty, a pokud do jejich druhého konce také nevede kanál, přidáme je do seznamu. Během celého výpočtu takto každou cestu ověřujeme nejvýše dvakrát (jednou pro každý její konec), a tak nám to celkově zabere lineární čas. Ostatní operace (mazání vrcholů a incidentních hran) nám také zaberou pouze lineární čas. Výsledná časová i paměťová složitost jsou tudíž lineární O(n + k + c). #include <cstdio> #include <list> #include <vector> #include <cassert> using namespace std; struct vrchol bool smazany; int pocet_vchazejicich_kanalu; list<int> vychazejici_kanaly; list<int> cesty; vrchol(void) : smazany(false), pocet_vchazejicich_kanalu(0) bool zdroj(void) return pocet_vchazejicich_kanalu == 0; ; static vector<vrchol> sit; static list<pair<int,int> > cesty_mezi_zdroji; /* Přidá do seznamu cesty mezi nově vzniklým zdrojem a ostatními ještě nesmazanými zdroji. */ static void aktualizuj_cesty_mezi_zdroji(int novy_zdroj) for (int a : sit[novy_zdroj].cesty) if (!sit[a].smazany && sit[a].zdroj()) cesty_mezi_zdroji.emplace_back(novy_zdroj, a); 6
7 int main(void) int n, k, c; scanf("%d%d%d", &n, &k, &c); sit.resize(n); for (int i = 0; i < k; i++) int d, z; scanf("%d%d", &d, &z); d--; z--; sit[z].vychazejici_kanaly.push_back(d); sit[d].pocet_vchazejicich_kanalu++; for (int i = 0; i < c; i++) int a, b; scanf("%d%d", &a, &b); a--; b--; sit[a].cesty.push_back(b); sit[b].cesty.push_back(a); if (sit[a].zdroj() && sit[b].zdroj()) cesty_mezi_zdroji.emplace_back(a, b); while (!cesty_mezi_zdroji.empty()) pair<int,int> cesta = cesty_mezi_zdroji.back(); cesty_mezi_zdroji.pop_back(); int a = cesta.first; int b = cesta.second; if (sit[a].smazany sit[b].smazany) continue; sit[a].smazany = true; for (int d : sit[a].vychazejici_kanaly) assert(!sit[d].smazany); sit[d].pocet_vchazejicich_kanalu--; for (int d : sit[a].vychazejici_kanaly) if (sit[d].zdroj()) aktualizuj_cesty_mezi_zdroji(d); for (int i = 0; i < n; i++) if (!sit[i].smazany && sit[i].pocet_vchazejicich_kanalu == 0) printf("%d ", i + 1); printf("\n"); return 0; 7
8 P-II-4 Doprava Zjevně jediné rozhodnutí, které můžete udělat, je zda a po kolika dnech si slevovou kartu koupíte. Nechť S d označuje algoritmus zakoupit slevovou kartu po d dnech a N algoritmus slevovou kartu si nekoupím. Oproti tomu optimální řešení si slevovou kartu může koupit pouze na začátku (nemá smysl před její koupí ještě nějaký čas jezdit dráže). Vyhodí-li vás tedy za n dní, cena optimálního řešení je 2n jestliže n a, min(2n, a + n) = a + n jestliže a n. Uvažujme nejprve srovnání s algoritmem S d. Každý den před dnem d včetně se poměr mezi tím, kolik zaplatí S d a optimální řešení zvětšuje nebo zůstává stejný. Po zakoupení slevové karty se poměr zvýší, dále už se bude jen snižovat. Nejhorší případ pro řešení S d tedy je, že vás vyhodí přesně po d-tém dni, kdy utratíte 2d + a korun. Kompetitivita vůči optimálnímu řešení tedy je 2d+a 2d = 1 + a 2d, jestliže d a; 2d+a a+d = 2 a a+d, jestliže a d. V prvním případě je nejlepší mít d co největší, ve druhém co nejmenší. Nejlepší kompetitiní poměr tedy má algoritmus S a, který je 3/2-kompetitivní. 2n Algoritmus N má po n a dnech poměr a+n = 2 2a a+n, což je pro velké n libovolně blízko 2; je tedy horší než S a. Žádný algoritmus lepší než 3/2-kompetitivní tedy neexistuje. 8
68. ročník Matematické olympiády 2018/2019
68. ročník Matematické olympiády 2018/2019 Řešení úloh ústředního kola kategorie P 1. soutěžní den P-III-1 Půl království Pokud v hledané polorovině neleží všechny zadané body, můžeme bez újmy na obecnosti
68. ročník Matematické olympiády 2018/2019
68. ročník Matematické olympiády 2018/2019 Řešení úloh ústředního kola kategorie P 2. soutěžní den P-III-4 Výlet Abychom našli požadovaný výlet délky 4, stačí najít dvě hvězdy a a b, které mají dva společné
68. ročník Matematické olympiády 2018/2019
68. ročník Matematické olympiády 2018/2019 Řešení úloh domácího kola kategorie P P-I-1 Bourání města Úlohu budeme popisovat v řeči teorie grafů.* V této terminologii se každé křižovatce říká vrchol a každé
Konvexní obal a množina
Definice M Množina se nazývá konvení, jestliže úsečka spojující libovolné dva její bod je částí této množin, tj. ab, M, t 0, : ta+ ( tb ) M konvení množina a b a b nekonvení množina Definice Konvení obal
Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A
Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A Každá úloha je hodnocena maximálně 25 body. Všechny své odpovědi zdůvodněte! 1. Postavte na stůl do řady vedle
Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr
Seminář z IVT Algoritmizace Slovanské gymnázium Olomouc Tomáš Kühr Algoritmizace - o čem to je? Zatím jsme se zabývali především tím, jak určitý postup zapsat v konkrétním programovacím jazyce (např. C#)
Vzdálenost uzlů v neorientovaném grafu
Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující
59. ročník Matematické olympiády 2009/2010
59. ročník Matematické olympiády 2009/2010 Řešení úloh ústředního kola kategorie P 2. soutěžní den P-III-4 Mravenci V této úloze máme spočítat zbytek, který dává jakési velké číslo po dělení číslem M=10
Geometrické vyhledávání
mnohoúhelníky a jejich vlastnosti lokalizace bodu vůči konvexnímu mnohoúhelníku rozhodnutí, zda je bod vnitřní či vnější lokalizace bodu vůči nekonvexnímu mnohoúhelníku rozhodnutí, zda je bod vnitřní či
68. ročník Matematické olympiády 2018/2019
68. ročník Matematické olympiády 2018/2019 Úlohy krajského kola kategorie P Krajské kolo 68. ročníku MO kategorie P se koná v úterý 22. 1. 2019 v dopoledních hodinách. Na řešení úloh máte 4 hodiny čistého
63. ročník Matematické olympiády 2013/2014
6. ročník Matematické olympiády / Úlohy krajského kola kategorie P Krajské kolo 6. ročníku MO kategorie P se koná v úterý.. v dopoledních hodinách. Na řešení úloh máte hodiny čistého času. V krajském kole
Standardní algoritmy vyhledávací.
Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární
66. ročník Matematické olympiády 2016/2017
66. ročník Matematické olympiády 2016/2017 Úlohy ústředního kola kategorie P 1. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Řešení každé úlohy pište na samostatný list papíru. Při soutěži
Příklad 1/23. Pro rostoucí spojité fukce f(x), g(x) platí f(x) Ω(g(x)). Z toho plyne, že: a) f(x) Ο(g(x)) b) f(x) Θ(g(x)) d) g(x) Ω(f(x))
Příklad 1/23 Pro rostoucí spojité fukce f(x), g(x) platí f(x) Ω(g(x)). Z toho plyne, že: a) f(x) Ο(g(x)) b) f(x) Θ(g(x)) c) g(x) Θ(f(x)) d) g(x) Ω(f(x)) e) g(x) Ο(f(x)) 1 Příklad 2/23 Pro rostoucí spojité
ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU
ÚLOHY S POLYGONEM Polygon řetězec úseček, poslední bod je totožný s prvním 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU 3 úsečky (segmenty) v horní části 2 úsečky ve spodní části
Algoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
Základní datové struktury
Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013
Úlohy klauzurní části školního kola kategorie B
65. ročník matematické olympiády Úlohy klauzurní části školního kola kategorie B 1. Kolika způsoby je možno vyplnit čtvercovou tabulku 3 3 čísly,, 3, 3, 3, 4, 4, 4, 4 tak, aby součet čísel v každém čtverci
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky
Úlohy krajského kola kategorie C
6. ročník matematické olympiády Úlohy krajského kola kategorie C. Pro libovolná reálná čísla x, y, z taková, že x < y < z, dokažte nerovnost x 2 y 2 + z 2 > (x y + z) 2. 2. Honza má tři kartičky, na každé
Množina v C++ (set, multiset).
Množina v C++ (set, multiset). Množina je datová struktura, ve které jsou uloženy nějaké prvky. V množině nesmí být dva stejné prvky. Naopak multimnožina může obsahovat i stejné prvky. Nad množinou lze
Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy
Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou
Úlohy krajského kola kategorie C
67. ročník matematické olympiády Úlohy krajského kola kategorie C 1. Najděte nejmenší přirozené číslo končící čtyřčíslím 2018, které je násobkem čísla 2017. 2. Pro celá čísla x, y, z platí x 2 + y z =
Klauzurní část školního kola kategorie A se koná
56. ročník matematické olympiády Úlohy klauzurní části školního kola kategorie 1. rčete všechna reálná čísla s, pro něž má rovnice 4x 4 20x 3 + sx 2 + 22x 2 = 0 čtyři různé reálné kořeny, přičemž součin
10 Přednáška ze
10 Přednáška ze 17. 12. 2003 Věta: G = (V, E) lze nakreslit jedním uzavřeným tahem G je souvislý a má všechny stupně sudé. Důkaz G je souvislý. Necht v je libovolný vrchol v G. A mějme uzavřený eurelovský
C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++
C++ Akademie SH 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory Za áte níci C++ 20. b ezna 2011 Obsah 1 Prom nné - primitivní typy Celá ísla ƒísla s pohyblivou desetinnou árkou, typ bool 2 Podmínka
67. ročník matematické olympiády III. kolo kategorie A. Přerov, března 2018
67. ročník matematické olympiády III. kolo kategorie Přerov, 8.. března 08 MO . Ve společnosti lidí jsou některé dvojice spřátelené. Pro kladné celé číslo k 3 řekneme, že společnost je k-dobrá, pokud
Návody k domácí části I. kola kategorie B
Návody k domácí části I. kola kategorie B 1. Najděte všechna osmimístná čísla taková, z nichž po vyškrtnutí některé čtveřice sousedních číslic dostaneme čtyřmístné číslo, které je 2 019krát menší. (Pavel
Úlohy domácího kola kategorie B
47. ročník Matematické olympiády Úlohy domácího kola kategorie B 1. Magický čtverec je čtvercová tabulka přirozených čísel, v níž je součet všech čísel v každém řádku, v každém sloupci i na obou úhlopříčkách
Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek
Hranová konzistence Arc consistency AC Nejprve se zabýváme binárními CSP podmínka odpovídá hraně v grafu podmínek Hrana (V i, V j ) je hranově konzistentní, právě když pro každou hodnotu x z aktuální domény
Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b
Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -
60. ročník Matematické olympiády 2010/2011
60. ročník Matematické olympiády 2010/2011 Řešení úloh ústředního kola kategorie P 1. soutěžní den P-III-1 Básník Honzík Pokud bychom hledali libovolné slovo s nejdelším společným koncovým úsekem, stačilo
Lineární spojový seznam (úvod do dynamických datových struktur)
Lineární spojový seznam (úvod do dynamických datových struktur) Jan Hnilica Počítačové modelování 11 1 Dynamické datové struktury Definice dynamické struktury jsou vytvářeny za běhu programu z dynamicky
Základy algoritmizace. Hašování
Základy algoritmizace Hašování Problematika hašování Hašování - nástroj na jednoduchý způsob "zakódování vstupních dat. Vstupní data jsou zpracována hašovací funkcí jsou jistým způsobem komprimována. Relativně
Řešení 1b Máme najít body, v nichž má funkce (, ) vázané extrémy, případně vázané lokální extrémy s podmínkou (, )=0, je-li: (, )= +,
Příklad 1 Najděte body, v nichž má funkce (,) vázané extrémy, případně vázané lokální extrémy s podmínkou (,)=0, je-li: a) (,)= + 1, (,)=+ 1 lok.max.v 1 2,3 2 b) (,)=+, (,)= 1 +1 1 c) (,)=, (,)=+ 1 lok.max.v
5 Rekurze a zásobník. Rekurzivní volání metody
5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení
KMA/GPM Barycentrické souřadnice a
KMA/GPM Barycentrické souřadnice a trojúhelníkové pláty František Ježek jezek@kma.zcu.cz Katedra matematiky Západočeské univerzity v Plzni, 2008 19. dubna 2009 1 Trojúhelníkové pláty obecně 2 Barycentrické
V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2
Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných
Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)
Cykly Základy programování 1 Martin Kauer (Tomáš Kühr) Z minula Chary můžete používat jako znaky ale i jako čísla 0-255. Jakou formu vybrat záleží na konkrétní aplikaci. Když pracujete se znaky, používejte
Přijímací zkouška na navazující magisterské studium 2015
Přijímací zkouška na navazující magisterské studium 2015 Studijní program: Studijní obory: Matematika MMUI Varianta A Řešení příkladů pečlivě odůvodněte. Příklad 1 (25 bodů Navrhněte deterministický konečný
Analytická geometrie ( lekce)
Analytická geometrie (5. - 6. lekce) Sylva Potůčková, Dana Stesková, Lubomír Sedláček Gymnázium a Jazyková škola s právem státní jazykové zkoušky Zlín Zlín, 20. června 2011 Vektory Vektorový součin Vektorový
Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY DUBNA 2017
NÁRODNÍ SROVNÁVACÍ ZKOUŠKY Matematika T DUBNA 07 : 9. dubna 07 D : 830 P P P : 30 M. M. : 30 : 8,8 M. :, % S : -7,5 M. P : -,5 :,4 Zopakujte si základní informace ke zkoušce: n Test obsahuje 30 úloh a
Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016
ZPRO cvičení 2 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 17, 2016 Outline I 1 Outline 2 Proměnné 3 Proměnné - cvičení 4 Funkce 5 Funkce
Standardní algoritmy v C++.
Standardní algoritmy v C++. Standardní algoritmy jsou součástí STL. Jedná se o spoustu užitečných šablon funkcí, které za nás naprogramoval někdo jiný. Na nás je jen, abychom je používali. Také si ukážeme
Digitální učební materiál
Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_145_IVT Autor: Ing. Pavel Bezděk Tematický okruh:
Binární vyhledávací stromy pokročilé partie
Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald
Úlohy klauzurní části školního kola kategorie A
64. ročník matematické olympiády Úlohy klauzurní části školního kola kategorie 1. Určete počet cest délky 14, které vedou po hranách sítě na obrázku z bodu do bodu. élka každé hrany je jedna.. Je dán rovnoběžník,
H {{u, v} : u,v U u v }
Obyčejný graf Obyčejný graf je dvojice G= U, H, kde U je konečná množina uzlů (vrcholů) a H {{u, v} : u,v U u v } je (konečná) množina hran. O hraně h={u, v} říkáme, že je incidentní s uzly u a v nebo
Funkční objekty v C++.
Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční
Programování v C++ 1, 17. cvičení
Programování v C++ 1, 17. cvičení výjimky 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí minule procvičené látky Binární vyhledávací
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Stromy. Jan Hnilica Počítačové modelování 14
Stromy Jan Hnilica Počítačové modelování 14 1 Základní pojmy strom = dynamická datová struktura, složená z vrcholů (uzlů, prvků) propojených hranami hrany chápeme jako orientované, tzn. vedou z uzlu A
66. ročník Matematické olympiády 2016/2017
66. ročník Matematické olympiády 2016/2017 Úlohy domácího kola kategorie P Úlohy P-I-1 a P-I-2 jsou praktické, vaším úkolem v nich je vytvořit a odladit efektivní program v jazyce Pascal, C nebo C++. Řešení
Pole a Funkce. Úvod do programování 1 Tomáš Kühr
Pole a Funkce Úvod do programování 1 Tomáš Kühr (Jednorozměrné) pole u Datová struktura u Lineární u Homogenní = prvky stejného datového typu u Statická = předem určený počet prvků u Pole umožňuje pohodlně
V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti
Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení
Přijímací zkouška na MFF UK v Praze
Přijímací zkouška na MFF UK v Praze pro bakalářské studijní programy fyzika, informatika a matematika 2016, varianta A U každé z deseti úloh je nabízeno pět odpovědí: a, b, c, d, e. Vaším úkolem je u každé
Průvodce studiem. do bodu B se snažíme najít nejkratší cestu. Ve firmách je snaha minimalizovat
6. Extrémy funkcí více proměnných Průvodce studiem Hledání extrémů je v praxi často řešená úloha. Např. při cestě z bodu A do bodu B se snažíme najít nejkratší cestu. Ve firmách je snaha minimalizovat
Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
Voronoiův diagram. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta
12 RNDr., Ph.D. Katedra didaktiky matematiky Univerzita Karlova v Praze Matematicko-fyzikální fakulta petra.surynkova@mff.cuni.cz http://surynkova.info Definice V( P) nad množinou bodů P { p v rovině 1,
Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.
Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?
Úlohy klauzurní části školního kola kategorie A
62. ročník matematické olympiády Úlohy klauzurní části školního kola kategorie A 1. V obdélníku ABCD o stranách AB = 9, BC = 8 leží vzájemně se dotýkající kružnice k 1 (S 1, r 1 ) a k 2 (S 2, r 2 ) tak,
Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a
Aplikace Embedded systémů v Mechatronice Michal Bastl A2/713a Aplikace Embedded systémů v Mechatronice Obsah přednášky: Opakování Pointery v C pole a řetězce předání funkci referencí Vlastní datové typy
Operační systémy. Cvičení 4: Programování v C pod Unixem
Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17
CVIČNÝ TEST 15 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Je dána čtvercová mřížka, v níž každý čtverec má délku
Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. December 7, 2016
ZPRO cvičení 8 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague December 7, 2016 Outline I 1 Outline 2 Dynamické alokování paměti 3 Dynamická alokace
4EK213 LINEÁRNÍ MODELY
4EK213 LINEÁRNÍ MODELY Úterý 11:00 12:30 hod. učebna SB 324 Mgr. Sekničková Jana, Ph.D. 2. PŘEDNÁŠKA MATEMATICKÝ MODEL ÚLOHY LP Mgr. Sekničková Jana, Ph.D. 2 OSNOVA PŘEDNÁŠKY Obecná formulace MM Množina
Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008
Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování študenti MFF 15. augusta 2008 1 15 Základy lineárního programování Požadavky Simplexová metoda Věty o dualitě (bez důkazu)
Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY ZADÁNÍ NEOTVÍREJTE, POČKEJTE NA POKYN!
NÁRODNÍ SROVNÁVACÍ ZKOUŠKY Matematika 017 ZADÁNÍ NEOTVÍREJTE, POČKEJTE NA POKYN! Zopakujte si základní informace ke zkoušce: n Test obsahuje 0 úloh a na jeho řešení máte 90 minut čistého času. n V průběhu
Funkce, intuitivní chápání složitosti
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Funkce, intuitivní
ZÁPOČTOVÝ TEST. Zpracoval Vilém Závodný, http://narrow.ic.cz. #include "stdafx.h" #include "stdio.h"
BPC2 ZÁPOČTOVÝ TEST PROSÍM ČTĚTE!!!! Příklady jsou zpracovány tak aby bylo možné je odzkoušet v programu Microsoft Visual C++ jako konzolovou aplikaci. Všechny příklady jsou 100% funkční. V červeném rámečku
Lineární datové struktury
Lineární datové struktury doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 5. března 2019 Jiří Dvorský (VŠB TUO) Lineární datové
64. ročník matematické olympiády Řešení úloh krajského kola kategorie A
64. ročník matematické olympiády Řešení úloh krajského kola kategorie A 1. Středy stran AC, BC označme postupně, N. Střed kružnice vepsané trojúhelníku KLC označme I. Úvodem poznamenejme, že body K, L
6 Lineární geometrie. 6.1 Lineární variety
6 Lineární geometrie Motivace. Pojem lineární varieta, který budeme v této kapitole studovat z nejrůznějších úhlů pohledu, není žádnou umělou konstrukcí. Příkladem lineární variety je totiž množina řešení
Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy
Stromy úvod Stromy Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Neorientovaný strom Orientovaný strom Kořenový orientovaný
66. ročník Matematické olympiády 2016/2017
66. ročník Matematické olympiády 2016/2017 Řešení úloh ústředního kola kategorie P 1. soutěžní den P-III-1 Bizoní rezervace Zadány jsou alespoň tři přímky v obecné poloze a hledáme konvexní obal všech
Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP
Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................
Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL
Středoškolská technika 2017 Setkání a prezentace prací středoškolských studentů na ČVUT PROGRAM NA GENEROVÁNÍ PRVOČÍSEL Vojtěch Pchálek Střední škola technická Kouřílkova 8, Přerov ANOTACE Bratr, který
PŘEDNÁŠKA 7 Kongruence svazů
PŘEDNÁŠKA 7 Kongruence svazů PAVEL RŮŽIČKA Abstrakt. Definujeme svazové kongruence a ukážeme jak pro vhodné binární relace svazu ověřit, že se jedná o svazové kongruence. Popíšeme svaz Con(A) kongruencí
Konstruktory a destruktory
Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,
Úlohy krajského kola kategorie A
64. ročník matematické olympiády Úlohy krajského kola kategorie A 1. Je dán trojúhelník ABC s tupým úhlem při vrcholu C. Osa o 1 úsečky AC protíná stranu AB v bodě K, osa o 2 úsečky BC protíná stranu AB
(4x) 5 + 7y = 14, (2y) 5 (3x) 7 = 74,
1. V oboru celých čísel řešte soustavu rovnic (4x) 5 + 7y = 14, (2y) 5 (3x) 7 = 74, kde (n) k značí násobek čísla k nejbližší číslu n. (P. Černek) Řešení. Z první rovnice dané soustavy plyne, že číslo
Úlohy krajského kola kategorie A
66. ročník matematické olympiády Úlohy krajského kola kategorie A 1. Najděte všechny trojice celých čísel (a, b, c) takové, že každý ze zlomků má celočíselnou hodnotu. a b + c, b c + a, c a + b 2. Je dána
CVIČNÝ TEST 35. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17
CVIČNÝ TEST 35 Mgr. Tomáš Kotler OBSAH I. Cvičný test II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST 1 Vypočtěte [( 3 3 ) ( 1 4 5 3 0,5 ) ] : 1 6 1. 1 bod VÝCHOZÍ TEXT K ÚLOZE
Rozklad problému na podproblémy, rekurze
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Rozklad problému na podproblémy, rekurze BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Miroslav Balík Fakulta informačních
Pole a kolekce. v C#, Javě a C++
Pole a kolekce v C#, Javě a C++ C# Deklarace pole typ_prvku_pole[] jmeno_pole; Vytvoření pole jmeno_pole = new typ_prvku_pole[pocet_prvku_pole]; Inicializace pole double[] poled = 4.8, 8.2, 7.3, 8.0; Java
Úloha2.Naleznětevšechnydvojicereálnýchčísel(a,b)takové,žečísla10, a, b, abtvořívtomtopořadí aritmetickou posloupnost.
Úloha. V Americe se pro měření teploty používají místo Celsiových stupňů stupně Fahrenheitovy. PřepočetzCelsiovýchstupňůnaFahrenheitovylzeprovéstpodlevzorce f = 9 5 c+32(cjsoustupně Celsiovy, f Farenheitovy).
Rozklad problému na podproblémy, rekurze
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Rozklad problému
66. ročník Matematické olympiády 2016/2017
66. ročník Matematické olympiády 016/017 Úlohy krajského kola kategorie P Krajské kolo 66. ročníku MO kategorie P se koná v úterý 17. 1. 017 v dopoledních hodinách. Na řešení úloh máte 4 hodiny čistého
BI-EP1 Efektivní programování 1
BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze Evropský
9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek
9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 1/24 Editační prostření Kód programu lze editovat v jakémkoli textovém editoru. 2/24 Editační prostření Kód
CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17
CVIČNÝ TEST 36 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST 1 Určete iracionální číslo, které je vyjádřeno číselným výrazem (6 2 π 4
IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);
Pole (array) Motivace Častá úloha práce s větším množstvím dat stejného typu o Př.: průměrná teplota za týden a odchylka od průměru v jednotlivých dnech Console.Write("Zadej T pro.den: "); double t = Double.Parse(Console.ReadLine());
[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici
[1] Determinant je číslo jistým způsobem charakterizující čtvercovou matici det A = 0 pro singulární matici, det A 0 pro regulární matici používá se při řešení lineárních soustav... a v mnoha dalších aplikacích
Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout
Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní graf má stromovou šířku nejvýše k, a je-li tomu tak, také vrátí příslušný stromový rozklad. Poznamenejme, že je-li k součástí vstupu,
Základní datové struktury III: Stromy, haldy
Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní
Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice)
- 7.1 - Kapitola 7: Návrh relačních databází Nástrahy návrhu relačních databází Dekompozice (rozklad) Normalizace použitím funkčních závislostí Nástrahy relačního návrhu Návrh relačních databází vyžaduje
NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
NEJKRATŠÍ CESTY I Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 7 Evropský sociální fond Praha & EU: Investujeme do vaší