1 / 24

Sample Solutions CTU Open Contest 200 8

Sample Solutions CTU Open Contest 200 8. Alea. Alea. Vygenerování posloupnosti hodů Zkoušení všech možností Již spočítané varianty se ukládají (dynamické programování). Alea. Nejlepší řešení pro kombinace: Využité x nevyužité stavy (2 11 ) Počet „spotřebovaných hodů“ (15 * 11)

quinto
Download Presentation

Sample Solutions CTU Open Contest 200 8

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. SampleSolutionsCTU Open Contest 2008

  2. Alea

  3. Alea • Vygenerování posloupnosti hodů • Zkoušení všech možností • Již spočítané varianty se ukládají (dynamické programování)

  4. Alea • Nejlepší řešení pro kombinace: • Využité x nevyužité stavy (211) • Počet „spotřebovaných hodů“ (15*11) • (Pozn.: Nezáleží na tom, zda mohu v třetím hodu znovu použít odložené kostky)

  5. Banking

  6. Banking • Jednoduchá simulace • Trochu ztížená nekorektním vstupem 

  7. Contest

  8. Contest • Reverzní úloha k B • Mohly v tom být „složitosti“ • Nutné připravit si dostatečný počet účtů • S dostatečnými zůstatky • Ve správných bankách • ... • ... ale nebyly!

  9. Declare

  10. Declare • Dynamické programování • Pamatuji si nejlepší řešení pro: • Prvních N slov z prvního textu (2000) • Prvních M slov z druhého textu (2000) • Nejlepší řešení BEST(n,m) • BEST(n-1,m-1),pokud slovo1[n]=slovo2[m] • BEST(n-1,m)a přidat slovo1[n] • BEST(n,m-1)a přidat slovo2[m]

  11. Exchange

  12. Exchange • „záchranná“ úloha  • Porovnat každý s každým

  13. Fence

  14. Fence • Pouze 16 stromů • Zkusit všechny kombinace pokácení (216) • Pro každou kombinaci • Sečíst dřevo z pokácených stromů • Zkusit, zda stačí na konvexní obálku • Najít minimum

  15. Fence • Určení konvexní obálky • Pouze 16 bodů • => existuje řešení v O(n3) • Všechny dvojice bodů • Pomocí kartézského součinu zjistit, zda jsou ostatní body na stejné straně

  16. Gambling

  17. Gambling • Tři (překrývající se) úseky o délce K • Úsek s nejmenším součtem je vždy součástí výsledku • Zbytek lze pokrýt dvěma úseky z jakéhokoli jiného řešení • => Pro každé optimum lze najít také optimum obsahující onen nejmenší úsek

  18. Gambling • Hledáme 2 úseky, které pokryjí zbytek • Pro každé číslo zjistíme jeho nejlepší pokrytí „zleva“ a „zprava“ • Lze v lineárním čase • Najdeme 2 sousedící čísla s nejlepším součtem

  19. Help

  20. Help • Začnu nejmenším balíčkem • Neexistuje lepší řešení, než jeho hodnota • Ostatní seřadím podle hodnoty... • ... a přidávám od NEJVĚTŠÍHO

  21. Insert

  22. Insert • Stromy jsou rekurzivní struktury • Rekurzivní řešení • Pro jeden uzel (i žádný) je 1 možnost • Jinak podle obou podstromů

  23. Insert • Levý podstrom: N1 uzlů a C1 možností • Pravý podstrom: N2 uzlů a C2 možností • Střídání L a P: comb(N1, N1+N2) • Možnosti permutace vlevo: C1 • Možnosti permutace vlevo: C2 • ... To všechno vynásobíme

  24. Autoři úloh Josef Cibulka Jan Stoklasa Martin Kačer

More Related