sample solutions ctu open contest 2009
DESCRIPTION
Sample Solutions CTU Open Contest 2009. Arable Area. Arable Area. Projít po řádcích a pro každý z nich: Zjistit, které hrany ho protínají Seřadit je podle X souřadnice Zleva doprava projít a počítat, kolik čtverečků je uvnitř polygonu Vzhledem k rozměrům pole OK. Arable Area. Arable Area. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/1.jpg)
SampleSampleSolutionsSolutions
CTU OpenCTU Open Contest 2009 Contest 2009
![Page 2: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/2.jpg)
Arable AreaArable Area
![Page 3: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/3.jpg)
Arable Area
Projít po řádcích a pro každý z nich: Zjistit, které hrany ho protínají Seřadit je podle X souřadnice Zleva doprava projít a počítat, kolik
čtverečků je uvnitř polygonu
Vzhledem k rozměrům pole OK
![Page 4: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/4.jpg)
Arable Area
![Page 5: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/5.jpg)
Arable Area
![Page 6: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/6.jpg)
Arable Area
![Page 7: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/7.jpg)
Arable Area
![Page 8: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/8.jpg)
Arable Area
![Page 9: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/9.jpg)
Arable Area
![Page 10: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/10.jpg)
Arable Area
![Page 11: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/11.jpg)
Arable Area
![Page 12: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/12.jpg)
Arable Area
![Page 13: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/13.jpg)
Area – alternativní řešení
Základní princip je jednoduchý Sleduji hrany v daném pořadí Hrana doprava => přičtu vše, co je pod ní Hrana doleva => odečtu vše, co je pod ní
Pozor! Sčítáme pouze celé čtverečky ... ... ale odečítáme i přeškrtnuté!
![Page 14: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/14.jpg)
Area – alternativní řešení
HranaHrana 1515
MezisoučetMezisoučet 1515
![Page 15: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/15.jpg)
Area – alternativní řešení
HranaHrana 2222
MezisoučetMezisoučet 3737
![Page 16: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/16.jpg)
Area – alternativní řešení
HranaHrana 1818
MezisoučetMezisoučet 5555
![Page 17: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/17.jpg)
Area – alternativní řešení
HranaHrana 1010
MezisoučetMezisoučet 4545
![Page 18: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/18.jpg)
Area – alternativní řešení
HranaHrana 1212
MezisoučetMezisoučet 5757
![Page 19: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/19.jpg)
Area – alternativní řešení
HranaHrana 1313
MezisoučetMezisoučet 4444
![Page 20: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/20.jpg)
Area – alternativní řešení
HranaHrana 1515
MezisoučetMezisoučet 2929
![Page 21: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/21.jpg)
Area – alternativní řešení
VýsledekVýsledek 2929
![Page 22: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/22.jpg)
Area – alternativní řešení
Nezáleží, kde začínám
Ale záleží na směru (po/proti ručičkám) Zkusím obojí, jen jedno vyjde kladné
![Page 23: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/23.jpg)
Area – alternativní řešení
Jedním čtverečkem může jít víc hran To často nevadí, ale někdy ano
Na obrázku při červené hraně odečítám čtverečky, které žlutá hrana nepočítala!
![Page 24: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/24.jpg)
Area – alternativní řešení
Řešení: při odečítání ignoruji čtverečky kterými prochází ještě nějaká další hrana a tato hrana je NAD tou, se kterou pracuji
( toto je bohužel nejtěžší část řešení)
![Page 25: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/25.jpg)
Clock CaptchaClock Captcha
![Page 26: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/26.jpg)
Clock Captcha
Analyzovat každou pozici zvlášť
Ale pak posuzovat možné kombinace Příklad („otazník“ může být 1 nebo 2) ?5:27 jednoznačné ?3:27 není jednoznačné
![Page 27: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/27.jpg)
Digital DisplayDigital Display
![Page 28: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/28.jpg)
Digital Display
Přímočaré řešení
(ideálně samozřejmě „nakreslit“ do dvojrozměrného pole a až pak vypsat)
![Page 29: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/29.jpg)
IdentifiersIdentifiers
![Page 30: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/30.jpg)
Intriguing Identifiers
... tady snad není co dodat
Prostě implementovat všechny ty podmínky
![Page 31: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/31.jpg)
Letter LiesLetter Lies
![Page 32: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/32.jpg)
Letter Lies
Dynamické programování Acyklický graf => topologické uspoř.
Pro každou větu a každou délku: Sečteme možnosti ze všech předch. vět Pouze zvětšíme délku o 1
Nakonec sečteme ze všech zakončení
![Page 33: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/33.jpg)
Letter Lies
Všechy možnosti předchozích vět pro délku 0 sečteme a zapíšeme do délky 1
0 1 2 3 4 5
0 4 4 1 2 3
0 1 2 3 4 5
0 1 2 1 0 0
0 1 2 3 4 5
1 0 0 0 0 0
0 1 2 3 4 5
![Page 34: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/34.jpg)
Letter Lies
Všechy možnosti předchozích vět pro délku 0 sečteme a zapíšeme do délky 1
0 1 2 3 4 5
0 4 4 1 2 3
0 1 2 3 4 5
0 1 2 1 0 0
0 1 2 3 4 5
1 0 0 0 0 0
0 1 2 3 4 5
1
![Page 35: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/35.jpg)
Letter Lies
Nyní pro délku 1 Součet uložíme délky 2 pro násl. větu
0 1 2 3 4 5
0 4 4 1 2 3
0 1 2 3 4 5
0 1 2 1 0 0
0 1 2 3 4 5
1 0 0 0 0 0
0 1 2 3 4 5
1 5
![Page 36: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/36.jpg)
Letter Lies
... a tak dále až do konce
0 1 2 3 4 5
0 4 4 1 2 3
0 1 2 3 4 5
0 1 2 1 0 0
0 1 2 3 4 5
1 0 0 0 0 0
0 1 2 3 4 5
1 5 6
![Page 37: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/37.jpg)
OpportunitiesOpportunities
![Page 38: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/38.jpg)
Odd Opportunities
Lichý
Sudý Spojíme liché po dvojicích
![Page 39: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/39.jpg)
Odd Opportunities
Lichý
Sudý A nyní „XOR“ spojení
![Page 40: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/40.jpg)
Odd Opportunities
Lichý
Sudý
![Page 41: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/41.jpg)
Odd Opportunities
Lichý
Sudý HOTOVO!
![Page 42: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/42.jpg)
PrimesPrimes
![Page 43: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/43.jpg)
Peculiar Primes
Lze řešit rekurzivně
2 x všechny kombinace z 2,3,5 3 x všechny kombinace z 3,5 5 x všechny kombinace z 5
2 3 5
![Page 44: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/44.jpg)
Peculiar Primes
Lepší směrem „dolů“
Interval [100,150] 2 x [50,75] 3 x [34,50] 5 x [20,30]
2 3 5
2 3 5
3 5
5
![Page 45: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/45.jpg)
Peculiar Primes
void solve(int min, int mult, int first, int last) {
int i;
if (last == 0) return;
if (first == 1) result[cnt++] = mult;
for (i = min; i < nump; ++i) {
int p = primes[i];
solve(i, mult*p, (first-1)/p+1, last/p);
}
}
![Page 46: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/46.jpg)
Robotic RailsRobotic Rails
![Page 47: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/47.jpg)
Robotic Rails
Nejkratší cesta => Dijkstrův algoritmus
Stav = Místo + Natočení
... mohu přes jedno místo projít 2x
(bylo možné počítat v celých číslech)
![Page 48: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/48.jpg)
Robotic Rails
![Page 49: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/49.jpg)
StocksStocks
![Page 50: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/50.jpg)
Suspicious Stocks
Lineární průchod
Pamatuji si, kolik nejvíce akcí mohu mít
![Page 51: Sample Solutions CTU Open Contest 2009](https://reader036.vdocuments.mx/reader036/viewer/2022081421/568147b5550346895db4fafe/html5/thumbnails/51.jpg)
Autoři úlohAutoři úlohJosef Cibulka
Zdeněk Dvořák
Martin Kačer
Jan Kybic
Jan Stoklasa
(a Radek Pelánek )