A. Auxiliary Question of the Universe

Podobne dokumenty
2 Liczby rzeczywiste - cz. 2

Algorytmy zwiazane z gramatykami bezkontekstowymi

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

1 Bª dy i arytmetyka zmiennopozycyjna

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Liczby zmiennoprzecinkowe

Metodydowodzenia twierdzeń

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

Lab. 02: Algorytm Schrage

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Materiaªy do Repetytorium z matematyki

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

Wst p teoretyczny do wiczenia nr 3 - Elementy kombinatoryki

XVII Warmi«sko-Mazurskie Zawody Matematyczne

O pewnym zadaniu olimpijskim

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

x y x y x y x + y x y

1 a + b 1 = 1 a + 1 b 1. (a + b 1)(a + b ab) = ab, (a + b)(a + b ab 1) = 0, (a + b)[a(1 b) + (b 1)] = 0,

Teoria grafów i jej zastosowania. 1 / 126

1 Metody iteracyjne rozwi zywania równania f(x)=0

Matematyka dyskretna dla informatyków

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Grafy. Andrzej Jastrz bski. Akademia ET I. Politechnika Gda«ska

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Algorytmy i Struktury Danych

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Listy i operacje pytania

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

Omówienie zada«potyczki Algorytmiczne 2015

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Uogólnione drzewa Humana

Elementy geometrii w przestrzeni R 3

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Proste modele o zªo»onej dynamice

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

Algebra Liniowa 2. Zadania do samodzielnych wicze«wydziaª Elektroniki, I rok Karina Olszak i Zbigniew Olszak

Rozwi zanie równania ró»niczkowego metod operatorow (zastosowanie transformaty Laplace'a).

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

Macierze i Wyznaczniki

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

ZADANIA. Maciej Zakarczemny

ALGORYTMY SORTOWANIA DANYCH

12: Znajdowanie najkrótszych ±cie»ek w grafach

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

Minimalne drzewa rozpinaj ce

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

Dokªadny jak komputer?

Zadania z z matematyki dla studentów gospodarki przestrzennej UŠ. Marek Majewski Aktualizacja: 31 pa¹dziernika 2006

Notatki z AiSD. Nr 2. 4 marca 2010 Algorytmy Zachªanne.

1 Przypomnienie wiadomo±ci ze szkoªy ±redniej. Rozwi zywanie prostych równa«i nierówno±ci

Informacje pomocnicze

Metody dowodzenia twierdze«

Krzywe i powierzchnie stopnia drugiego

Zbiory i odwzorowania

Indeksowane rodziny zbiorów

Wykªad 05 (granice c.d., przykªady) Rozpoczniemy od podania kilku przykªadów obliczania granic ci gów. n an = + dla a > 1. (5.1) lim.

Przykªady problemów optymalizacji kombinatorycznej

Wojewódzki Konkurs Matematyczny

Biostatystyka, # 5 /Weterynaria I/

Oba zbiory s uporz dkowane liniowo. Badamy funkcj w pobli»u kresów dziedziny. Pewne punkty szczególne (np. zmiana denicji funkcji).

Programowanie i struktury danych 1 / 44

Funkcja kwadratowa, wielomiany oraz funkcje wymierne

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Ukªady równa«liniowych

Macierze i Wyznaczniki

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

Interpolacja Lagrange'a, bazy wielomianów

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Zastosowanie eliptycznych równa«ró»niczkowych

Zadanie 1. (8 punktów) Dana jest nast puj ca macierz: M =

Programowanie wspóªbie»ne

Interpolacja funkcjami sklejanymi

Podstawowe algorytmy grafowe i ich zastosowania

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Stereometria (geometria przestrzenna)

Dokªadny jak komputer

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, Dawid Rasaªa Metody numeryczne 1 / 9

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Logika dla matematyków i informatyków Wykªad 1

1 Kodowanie i dekodowanie

Matematyka dyskretna dla informatyków

Teoria grafów i sieci 1 / 58

Ekstremalnie fajne równania

Transkrypt:

Nieformalny wst p Dodatkow trudno±ci w dzisiejszym konkursie byªo to,»e zadania byªy sformuªowane w j zyku angielskim, a do tego autorami zada«nie byli native speakers. W takich wypadkach nie warto si nadmiernie wgª bia w dokªadne znaczenie historyjki w zadaniu, ale najlepiej od razu stara si wyªuska z niej wªa±ciwy problem algorytmiczny. Bardzo rzadko w tre±ciach zada«wyst puj trudne sªowa, których zrozumienie jest bezwzgl dnie konieczne do rozwi zania zadania cz sto mo»emy posªugiwa si nieznanymi sªowami jako black boksami. Np. ostatnio rozwi zywaªem zadanie, w którym wyst powaªy niejakie hurdles nie wiedz c, o co chodzi, po prostu rozwi zywaªem zadanie o jakich± hurdlesach. A. Auxiliary Question of the Universe Chcemy przerobi losowy napis nad alfabetem {+, (, ), 0..9} na poprawne wyra»enie z dodawaniem (zdeniowane w tre±ci zadania), dodaj c stosunkowo niewiele nowych znaków. Ju» na oko wida,»e sposobów osi gni cia celu mo»e by mnóstwo; jako»e nie musimy wypisa najkrótszego uzupeªnionego wyra»enia, skupimy si na tym, jak dokona uzupeªnienia w najprostszy mo»liwy sposób. Najªatwiej chyba skonstruowa wyra»enie w postaci spªaszczonej, tzn. je»eli spojrzymy na wynik jako na drzewo wyra»enia, to b dzie miaªo staª gª boko±. W tym celu przechodzimy wyra»enie od lewej do prawej i dokonujemy nast puj cych zamian: ) (0) + ( (0) + + 0 + 0 + d d+ przy czym d to dowolna cyfra. W ten sposób wychodzi nam dªuga suma bardzo prostych skªadników (albo pojedynczych cyfr, albo zer w nawiasach), na ko«cu której jest zb dny +. Usuwamy ten plus i mamy» dane wyra»enie (zauwa»my,»e w tym podej±ciu jest istotne,»eby to, na co zamieniamy plusa, miaªo w sobie co najmniej dwa plusy). B. Circles on a Screen Chcemy obliczy pole sumy (teoriomnogo±ciowej) niewielkiej (n 100) liczby spikselowanych kóªek. Istotne jest tak»e to,»e rozmiar planszy jest tak»e nie za du»y: co najwy»ej 20000 20000. Analizujemy kolejne kolumny planszy i = 1, 2,..., w. Ka»da kolumna przecina si z ka»dym spikselowanym kóªkiem, daj c przedziaª albo zbiór pusty. W ka»dym razie, dla danego i oraz wspóªrz dnych kóªka mo»emy obliczy posta tego przeci cia w czasie staªym. W ten sposób dla danego i musimy obliczy moc zbioru b d cego sum co

najwy»ej n przedziaªów. To zadanie mo»na rozwi za na kilka sposobów, z których drugi wydaje mi si sympatyczniejszy. Rozbijamy ka»dy przedziaª [a, b] na pocz tek (a, +1) i tu»-za-koniec (b + 1, 1), sortujemy te pary leksykogracznie i id c po kolei, obliczamy sum przedziaªów. Sortujemy przedziaªy jako pary i w tej kolejno±ci scalamy kolejne przedziaªy w jeden, dopóki si przecinaj. Otrzymujemy rozwi zanie O(w n log n), ze wzgl du na sortowanie. Gdyby chcie by teoretycznie szybszym, mo»na by te wszystkie sortowania wykona kubeªkowo w jednym du»ym sortowaniu to zmniejsza zªo»ono± do O(w n + h). C. Homo or Hetero? W zadaniu symulujemy dynamiczny (tzn. zmieniaj cy si w czasie) multizbiór i mamy po ka»dej wykonanej na nim operacji odpowiada na pytania o jakie± jego wªasno±ci. Kluczowa obserwacja: zakres elementów jest od zera do miliona. W takim razie multizbiór symulujemy za pomoc tablicy zliczaj cej elementy. Dodatkowo pami tamy dwa liczniki: ile jest ró»nych elementów w multizbiorze (to do pyta«o hetero) oraz ile jest elementów maj cych w multizbiorze co najmniej dwa wyst pienia (pytania o homo). Teraz wystarczy pokaza,»e te liczniki mo»emy aktualizowa po kolejnych wstawieniach i usuni ciach. D. Least Common Multiple To zadanie jest, po prawdzie, bardziej matematyczne ni» informatyczne. Pytanie to: ile jest ci gów N-elementowych liczb naturalnych, których NWW elementów jest równe T? Rozªó»my T na czynniki pierwsze, T = p α i i. Rozwi»emy nasze zadanie dla ka»- dego czynnika pierwszego z osobna, po czym wymno»ymy otrzymane liczby sposobów, co b dzie odpowiadaªo przemno»eniu ci gów otrzymanych dla poszczególnych czynników pierwszych. Šatwo wida,»e przy obliczaniu NWW czynniki pierwsze s od siebie niezale»ne. Przy obliczaniu wyniku dla danego p α i i istotne jest jedynie α i. Wynik ten to W (N, α i ) W (N, α i 1), przy czym W (N, a) to liczba ci gów N-elementowych, których wyrazy s pot gami tej samej liczby pierwszej o wykªadniku nieprzekraczaj cym a. Podkre±lmy,»e w tej ró»nicy chodzi o to,»eby cho jeden element ci gu byª postaci p a, czyli»eby NWW wyszªo takie jak chcemy. Wreszcie W (N, a) = (a + 1) N. Dodajmy,»e wszystkie obliczenia wykonujemy modulo» dane 10 9 +7 i nie ma w tym problemu, gdy» mamy tylko odejmowania i mno»enia.

E. Magic Power W przeciwie«stwie do poprzedniego zadania, wbrew pozorom, to zadanie jest mocno informatyczne. W rozwi zaniu musimy przede wszystkim zgadn,»e dziesi ciomilionowa pot ga trójki, której zapis dziesi tny zaczyna si od 9, ma niezbyt wygórowany indeks okoªo 2 10 8. Pewnie mo»na to jako± formalnie udowodni, ale nie b dziemy tutaj wnika powiedzmy,»e je±li potraktujemy pot gu trójki jako losowo wygl daj ce liczby w ukªadzie dziesi tnym, to zadziaªa prawo Benforda (wi cej informacji na temat tego prawa na pewno jest gdzie± w internecie, a b dzie te» w Delcie 12/2010). W rozwi zaniu rozpatrujemy kolejne pot gi trójki o wykªadnikach 1, 2, 3,..., utrzymuj c równolegle najwi ksz pot g dziesi tki nieprzekraczaj c danego 3 i. Oczywi±cie, znaj c t pot g 10 j oraz warto± 3 i, ªatwo stwierdzamy, czy 3 i zaczyna si od 9 wystarczy sprawdzi, czy 3 i 9 10 j. Z kolei same liczby 3 i oraz 10 j trzymamy w jakim± typie zmiennoprzecinkowym (double, lepiej long double) i mamy nadziej,»e nie b dzie bª dów oblicze«. Alternatywnie,»eby nie walczy z ogromnymi liczbami, mo»na operowa na logarytmach z tych»e. Znów pomijamy uzasadnienie tego,»e raczej nie b dzie problemów z dokªadno±ci. Niestety, tak czy siak mo»emy nie zmie±ci si w czasie, skoro musimy rozpatrzy 2 10 8 pot g. W takim razie potraktujemy to rozwi zanie jako preprocessing: wypiszemy indeks powiedzmy co M-tej znalezionej pot gi trójki zaczynaj cej si od cyfry 9 i wyniki te wpiszemy w kod wysyªanego rozwi zania w postaci staªej tablicy t, a kolejne zapytania k i b dziemy obsªugiwa, rozpoczynaj c przeszukiwanie od liczby t[ k i /M ] i szukaj c od tego miejsca (k i k i /M M)-tej pot gi trójki rozpoczynaj cej si od dziewi tki. Warto± M musimy dobra tak,»eby byªa jak najwi ksza, ale tak»e»eby tablica wpisana w kod wysyªanego programu zmie±ciªa si w limicie 100 kb na kod ¹ródªowy, w tym zadaniu np. M = 3000 jest dobre. Dokªadniejszy opis omawianego zastosowania metody preprocessingu/tablicowania mo»na znale¹ w lekcji o sztuczkach programistycznych na MAIN-ie: http://main.edu.pl/user.phtml?op=lesson&n=30&page=algorytmika G. Round Table Mamy dane dwie permutacje π 1 i π 2 zbioru 1..n i chcemy znale¹ dwa elementy wyst puj ce w obydwu permutacjach z takim samym odst pem (na razie nie deniujmy formalnie, co to znaczy). W przykªadzie do zadania jedna permutacja jest identyczno- ±ciowa; spróbujmy najpierw opisa rozwi zanie dla przypadku, gdy π 1 = π (dowolne), π 2 = id. W tym przypadku szukamy takich dwóch indeksów i, j,»e π[j] π[i] j i (mod n), który to wzór polecam rozpisa i sprawdzi. Jest on równowa»ny nast puj cemu: π[j] j π[i] i.

W takim razie zadanie sprowadza si do obliczenia warto±ci (π[i] i) mod n dla wszystkich i = 1, 2,..., n i sprawdzenia, czy jakie± dwie s takie same, co mo»na zrobi w czasie i pami ci O(n) za pomoc tablicy zliczaj cej rozmiaru n. W ogólnym przypadku mo»e jednak zachodzi π 2 id. Zauwa»my,»e wówczas nasze zadanie mo»emy zamieni na to samo zadanie dla permutacji π 1 = π 1 π2 1 oraz π 2 = id. Korzystamy tu z faktu,»e po przyªo»eniu do obu wyj±ciowych permutacji permutacji, poªo»enia odpowiadaj cych sobie elementów nie zmieni si. No to koniec. π 1 2 H. Spaceship Connections Jako± tak cz sto wychodzi,»e zadania o przek tnych wielok ta sprowadzaj si do drzew przedziaªowych. Nie inaczej b dzie tym razem. Wykorzystamy dwa drzewa przedziaªowe: min i max. Drzewo min dziaªa na ci gu (a i ) n i=1, pocz tkowo zªo»onym z samych niesko«czono±ci, i pozwala na wykonywanie przypisa«warto±ci poszczególnych a i i pytanie o minimum na przedziale [i, j], tzn. min{a i, a i+1,..., a j }. Drzewo max podobnie, tylko pracuje na ci gu b i, pocz tkowo same minus niesko«czono±ci. Takie drzewa mo»na zaimplementowa w O(n) pami ci i z narzutem czasowym O(log n) przy ka»dej operacji, po szczegóªy odsyªam do wykªadu 2 na WAS-ie: http://was.zaa.mimuw.edu.pl/?q=node/8 W naszym rozwi zaniu a i b dzie równe numerowi wierzchoªka wielok ta poª czonego przek tn z wierzchoªkiem i-tym, a +, je»eli takiego wierzchoªka nie ma. Ci g b i deniujemy symetrycznie, tylko z. Zauwa»my wreszcie,»e do wielok ta mo»emy doªo»y przek tn (i, j), i < j, je»eli wierzchoªki i, j nie s jeszcze z niczym poª czone oraz: min{a i,..., a j } > i max{b i,..., b j } < j. Intuicyjnie chodzi o to,»e»aden wierzchoªek ze zbioru (i + 1)..(j 1) nie mo»e by poª czony z»adnym spoza tego zbioru. Podane warunki sprawdzamy z u»yciem wspomnianych drzew przedziaªowych, caªo± dziaªa w czasie O(n log n). F. Recover Path To zadanie zostawiªem na sam koniec, gdy» jest wedªug mnie najtrudniejsze w zestawie. Z tego wzgl du opis rozwi zania ograniczam do kilku wskazówek tudzie» spostrze»e«, niech P oznacza zbiór wierzchoªków podanych na wej±ciu (ten do uzupeªnienia). 1. Mo»na zaªo»y,»e wynikowa ±cie»ka zaczyna si i ko«czy w jednym z wierzchoªków z P, co ªatwo pokaza. 2. Je»eli puszcz algorytm Dijkstry z dowolnego wierzchoªka z P, to najdalszy z pozostaªych wierzchoªków z P (oznaczmy go przez v 1 ) b dzie jednym ze skrajnych na ±cie»ce.

3. Puszczamy drugi raz algorytm Dijkstry, tym razem z v 1, sortujemy wierzchoªki z P po odlegªo±ciach od niego w ten sposób uzyskujemy kolejno± wierzchoªków v 1, v 2,..., v k z P na ±cie»ce. 4. Teraz pozostaje tylko uzupeªni ±cie»k brakuj cymi wierzchoªkami spoza zbioru P. To mo»na zrobi na kilka sposobów. Mój ulubiony polega na puszczaniu DFSów z kolejnych v i. W danym DFS-ie chodzimy tylko po kraw dziach z drzewa najkrótszych ±cie»ek wyznaczonego w drugim algorytmie Dijkstry, no i interesujemy si jedynie wierzchoªkami, których odlegªo± od v 1 jest odl(v 1, v i ) oraz jest odl(v 1, v i+1 ). W ten sposób dochodzimy z v i do v i+1, po czym fragment ±cie»ki v i v i+1, cofaj c si po tablicy ojców z DFS-a.