1 / 57

Sample Solutions CTU Open Contest 2013 Czech Technical University in Prague

Sample Solutions CTU Open Contest 2013 Czech Technical University in Prague. Fractional Lotion. FL – úloha. 1/n = 1/x + 1/y Vyzkoušíme všechny možnosti Jaké je omezení na x a y ? Buď 1 /x ≥ 1/n/2 nebo 1/y ≥ 1/n/2 => Jedno z nich je maximálně 2.n. FL – řešení. int solve(int n) {

urbana
Download Presentation

Sample Solutions CTU Open Contest 2013 Czech Technical University in Prague

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sample SolutionsCTU Open Contest 2013Czech Technical University in Prague

  2. FractionalLotion

  3. FL – úloha • 1/n = 1/x + 1/y • Vyzkoušíme všechny možnosti • Jaké je omezení na x a y ? • Buď 1/x ≥ 1/n/2 nebo 1/y ≥ 1/n/2 • => Jedno z nich je maximálně 2.n

  4. FL – řešení int solve(int n) { int c = 0; for (int a = n+1; a <= n*2; ++a){ if (a * n % (a-n) == 0) ++c; } return c; }

  5. FL – poznámky Lze řešit rychleji, ale nebylo požadováno (mj. na to naváděla poznámkana úvodní straně)

  6. FoldedMap

  7. FM – úloha • Základní myšlenka • Vyzkoušíme všechny možnosti posunu

  8. FM – úloha • Základní myšlenka • Vyzkoušíme všechny možnosti posunu

  9. FM – úloha • Základní myšlenka • Vyzkoušíme všechny možnosti posunu

  10. FM – úloha • Základní myšlenka • Vyzkoušíme všechny možnosti posunu

  11. FM – úloha • Základní myšlenka • Vyzkoušíme všechny možnosti posunu

  12. FM – řešení Pro každý posun spočítámpočet potřebných stránek

  13. FM – algoritmus • Jaká je operační složitost • Počet posunutí: px x py • Počet stránek: (mx/px+1)x (my/py+1) • => Celkově mx x my testů(lineárně) • Jeden test chceme efektivně

  14. FM – efektivita • Jak testovatzaplnění stránky? • Předpočítat na začátku volné pixely(světle modrá značí volno)

  15. FM – efektivita • Předpočítání volných stránek • Zelená značí, kde končí alespoň 4volné pixely vedle sebe (šířka stránky)

  16. FM – efektivita • Předpočítání volných stránek • Nyní počítám „zelená“ směrem dolů

  17. FM – efektivita • Číslo alespoň 3 (výška stránky)značí pravý dolní roh volné stránky • => Zjistím v konstantním čase

  18. FurryNuisance

  19. FN – rekapitulace zadání • Hledáme kostru se 4 listy • (původně mělo být číslo vyšší)

  20. FN – rekapitulace zadání • Hledáme kostru se 4 listy • (původně mělo být číslo vyšší)

  21. FN – princip • Co způsobí kostru se 4 listy? • Uzel stupně 4 (a více) • Nebo 2 uzly stupně 3 (ve stejné komp.)

  22. FN – speciální případy • Ale pozor! • Mohou spolu sdílet sousedy…

  23. FN – pro uzly stupně 3 • Ale pozor! • Dokonce ani nestačí, když mají4 sousedy dohromady

  24. FN – pro uzly stupně 3 • Ale pozor! • Dokonce ani nestačí, když mají4 sousedy dohromady

  25. FN – pro uzly stupně 3 Nejkratší cestu mezi nimi odeberu Musí ještě zbýt alespoň 4 sousedé

  26. FN – algoritmus Lze vyzkoušet pro všechny dvojice uzlů stupně 3(nemohou být všechny u sebe)

  27. FenceOrthogonality

  28. FO – zadání • Obdélník kolem daných bodů • Nejmenší obvod • „Obdélníková konvexní obálka“

  29. FO – konvexní obálka

  30. FO – konvexní obálka

  31. FO – konvexní obálka Postupně zkoušíme hrany obálky

  32. FO – konvexní obálka Lze lineárně (postupně „otáčet“)

  33. FlowerPots

  34. FP – když to nejde silou… Vyzkoušíme všechny možnosti

  35. FP – když to nejde silou… Různá umístění…

  36. FP – když to nejde silou… Různá umístění…

  37. FP – když to nejde silou… Různá umístění…

  38. FP – když to nejde silou… Různá umístění…

  39. FP – když to nejde silou… Různá umístění… … plus rotace a otáčení

  40. FrustratedQueue

  41. FQ – zadání Doplnění závorek na „platný“ zápis Dynamické programování Udržujeme v poli, kolika způsoby lze dosáhnout daného počtu otevíracích závorek

  42. FQ – zadání Na začátku jen 1 způsob pro 0 levých

  43. FQ – zadání Přijde levá závorka => posunu vpravo(

  44. FQ – zadání Přijde levá závorka => posunu vpravo((

  45. FQ – zadání Přijde tečka => sečtu vlevo i vpravo((.

  46. FQ – zadání Přijde tečka => sečtu vlevo i vpravo((..

  47. FQ – zadání Přijde tečka => sečtu vlevo i vpravo((..

  48. FQ – zadání Pravá závorka => posunu doleva((..)

  49. FQ – zadání Na konci výsledek v prvním prvku

  50. FrozenRose Heads

More Related