Akademickie Mistrzostwa Polski w Programowaniu Zespołowym

Podobne dokumenty
Akademickie Mistrzostwa Polski w Programowaniu Zespołowym

Akademickie Mistrzostwa Polski w Programowaniu Zespołowym

X Olimpiada Matematyczna Gimnazjalistów

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

XI Olimpiada Matematyczna Gimnazjalistów

Bukiety matematyczne dla gimnazjum

V Konkurs Matematyczny Politechniki Białostockiej

Lista 4. Kamil Matuszewski 22 marca 2016

XII Olimpiada Matematyczna Juniorów Zawody stopnia pierwszego część korespondencyjna (1 września 2016 r. 17 października 2016 r.)

IX Olimpiada Matematyczna Gimnazjalistów

VII Olimpiada Matematyczna Gimnazjalistów

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Akademickie Mistrzostwa Polski w Programowaniu Zespołowym

XIII Olimpiada Matematyczna Juniorów

Luty 2001 Algorytmy (4) 2000/2001

Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów

Złożoność obliczeniowa zadania, zestaw 2

ARKUSZ VIII

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

VII Olimpiada Matematyczna Gimnazjalistów

9. Funkcje trygonometryczne. Elementy geometrii: twierdzenie

XV Olimpiada Matematyczna Juniorów

Dzień pierwszy- grupa młodsza

STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH

a) 7 b) 19 c) 21 d) 34

LI Olimpiada Matematyczna Rozwiązania zadań konkursowych zawodów stopnia trzeciego 3 kwietnia 2000 r. (pierwszy dzień zawodów)

WYKŁAD 3 WYPEŁNIANIE OBSZARÓW. Plan wykładu: 1. Wypełnianie wieloboku

Internetowe Ko³o M a t e m a t yc z n e

Przecięcia odcinków. Wykład /07

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

LVIII Olimpiada Matematyczna

1. Równania i nierówności liniowe

Matematyka rozszerzona matura 2017

( ) Arkusz I Zadanie 1. Wartość bezwzględna Rozwiąż równanie. Naszkicujmy wykresy funkcji f ( x) = x + 3 oraz g ( x) 2x

X Olimpiada Matematyczna Gimnazjalistów

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Jednoznaczność rozkładu na czynniki pierwsze I

PODSTAWY > Figury płaskie (1) KĄTY. Kąt składa się z ramion i wierzchołka. Jego wielkość jest mierzona w stopniach:

Matematyczne Podstawy Informatyki

Kombinowanie o nieskończoności. 2. Wyspy, mosty, mapy i kredki materiały do ćwiczeń

XIV Olimpiada Matematyczna Juniorów Zawody stopnia pierwszego część korespondencyjna (1 września 2018 r. 15 października 2018 r.)

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

XIV Olimpiada Matematyczna Juniorów

Wymagania edukacyjne, kontrola i ocena. w nauczaniu matematyki w zakresie. podstawowym dla uczniów technikum. część II

Bukiety matematyczne dla gimnazjum

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

Tematy: zadania tematyczne

Wymagania kl. 3. Zakres podstawowy i rozszerzony

TEORETYCZNE PODSTAWY INFORMATYKI

MATEMATYKA WYDZIAŁ MATEMATYKI - TEST 1

Zadania na dowodzenie Opracowała: Ewa Ślubowska

Algorytmiczna teoria grafów

Internetowe Ko³o M a t e m a t yc z n e

Matematyczne Podstawy Informatyki

PRÓBNY EGZAMIN MATURALNY

2. Permutacje definicja permutacji definicja liczba permutacji zbioru n-elementowego

Graf. Definicja marca / 1

EGZAMIN ÓSMOKLASISTY od roku szkolnego 2018/2019

Złożoność algorytmów. Wstęp do Informatyki

Wymagania edukacyjne z matematyki dla kl. VI

Czy kwadrat da się podzielić na nieparzystą liczbę trójkątów o równych polach? Michał Kieza

Treści zadań Obozu Naukowego OMG

Algorytmy i struktury danych. Wykład 4

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

ARKUSZ X

ZADANIA OTWARTE KRÓTKIEJ ODPOWIEDZI

Kujawsko-Pomorskie Centrum Edukacji Nauczycieli w Bydgoszczy PLACÓWKA AKREDYTOWANA

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI poziom rozszerzony

Wymagania edukacyjne z matematyki dla klasy III a,b liceum (poziom podstawowy) rok szkolny 2018/2019

Wymagania edukacyjne matematyka klasa 1 zakres podstawowy 1. LICZBY RZECZYWISTE

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Podstawowe własności grafów. Wykład 3. Własności grafów

Wymagania edukacyjne z matematyki dla klasy VII

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Matura próbna matematyka poziom rozszerzony

Treści zadań Obozu Naukowego OMG

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Test, dzień pierwszy, grupa młodsza

ZADANIA ZAMKNIETE W zadaniach 1-25 wybierz i zaznacz na karcie odpowiedzi poprawna

Plan wynikowy klasa 3. Zakres podstawowy

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Matematyka z kluczem. Szkoła podstawowa nr 18 w Sosnowcu. Przedmiotowe zasady oceniania klasa 7

WYMAGANIE EDUKACYJNE Z MATEMATYKI W KLASIE II GIMNAZJUM. dopuszczającą dostateczną dobrą bardzo dobrą celującą

PLANIMETRIA CZYLI GEOMETRIA PŁASZCZYZNY CZ. 1

Zadania przygotowawcze do konkursu o tytuł NAJLEPSZEGO MATEMATYKA KLAS PIERWSZYCH I DRUGICH POWIATU BOCHEŃSKIEGO rok szk. 2017/2018.

EGZAMIN MATURALNY Z MATEMATYKI

XV WOJEWÓDZKI KONKURS Z MATEMATYKI

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Rozwiązanie: Zastosowanie twierdzenia o kątach naprzemianległych

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE II W PUBLICZNYM GIMNAZJUM NR 2 W ZESPOLE SZKÓŁ W RUDKACH

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY Z MATEMATYKI W KLASIE IV

Agnieszka Kamińska, Dorota Ponczek. MATeMAtyka 3. Szczegółowe wymagania edukacyjne z matematyki w klasie trzeciej.

MATERIAŁ ĆWICZENIOWY Z MATEMATYKI

WSTĘP DO ANALIZY I ALGEBRY, MAT1460

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

Przykładowe zadania z teorii liczb

Transkrypt:

Akademickie Mistrzostwa Polski w Programowaniu Zespołowym Prezentacja rozwiązań zadań 27 października 2013

e j f d i b k a h g c Egzamin Autor zadania: Jakub Łącki Zgłoszenia: 132 z 935 (14%) Zaakceptowane przez 50 z 52 drużyn (96%) AC WA 67 (50%) TLERE

Egzamin Chcemy znaleźć permutację liczb od 1 do n, w której różnica każdych dwóch sąsiednich liczb wynosi co najmniej k. Da się to zrobić wtedy, gdy k n 2. Przeplatamy dwa ciągi malejące rozpoczynające się od b n+1 2 c oraz n. Przykładowo dla n = 6 i n = 7: 3 6 2 5 1 4 4 7 3 6 2 5 1 Dla k > n n+1 2 się nie da, gdyż różnica między liczbą b 2 c a jej sąsiadem w każdej permutacji wynosi co najwyżej b n 2 c.

e j f d i b k a h g c Janosik Autor zadania: Tomasz Idziaszek Zgłoszenia: 158 z 935 (16%) Zaakceptowane przez 48 z 52 drużyn (92%) AC WA 54 (34%) TLE RE

Janosik Janosik ma n szkatułek, w i-tej znajduje się i mieszków ze złotem. Dopóki jakaś szkatułka jest niepusta, to wykonuje on operację: wybiera szkatułkę z minimalną liczbą mieszków, jeśli jest w niej jeden mieszek, to daje go biedakowi, jeśli jest w niej nieparzysta liczba mieszków, to chowa jeden z nich do kieszeni, w przeciwnym wypadku rozdziela pozostałe mieszki po równo między dwie szkatułki. Należy sprawdzić, ile mieszków zostanie Janosikowi w kieszeni po opróżnieniu wszystkich szkatułek.

Janosik Szkatułki możemy rozważać niezależnie. Liczba mieszków z i-tej szkatułki, które zostaną rozdane biedakom, to 2 blg ic, czyli największa potęga dwójki nie większa niż i. Zatem wynikiem jest nx i=1 (i 2 blg ic ) = n(n + 1) 2 blg nc X j=0 2 j min(n 2 j + 1; 2 j ):

e j f d i b k a h g c Fotoradary Autor zadania: Tomasz Idziaszek Zgłoszenia: 157 z 935 (16%) Zaakceptowane przez 33 z 52 drużyn (63%) AC WA 95 (60%) TLERE

Fotoradary Mamy drzewo o n węzłach. Chcemy zaznaczyć jak największą liczbę węzłów, tak by na każdej ścieżce było zaznaczonych nie więcej niż k węzłów. 3 2 1 Dzielimy węzły na warstwy: w i-tej warstwie są liście drzewa, które powstaje po usunięciu węzłów z poprzednich warstw.

Fotoradary Rozwiązanie zachłanne: dla k parzystego zaznaczmy węzły z k =2 warstw (lub wszystko, jeśli warstw jest mniej), dla k nieparzystego dodatkowo bierzemy jeszcze jeden węzeł (o ile istnieje). Wyznaczając warstwy, trzymamy kolejkę węzłów o stopniu 1. Alternatywnie można wyznaczać numery warstw, korzystając z programowania dynamicznego: numer warstwy dla węzła v to druga co do wielkości wysokość poddrzewa zaczepionego w dziecku v plus 1. Czas działania O(n).

e j f d i b k a h g c Demonstracje Autor zadania: Jakub Łącki Zgłoszenia: 82 z 935 (8%) Zaakceptowane przez 27 z 52 drużyn (51%) AC WA 43 (52%) TLERE

Demonstracje Na prostej mamy zaznaczone n odcinków. Chcemy usunąć dwa z nich, tak aby pozostałe odcinki pokrywały jak najmniejszą część prostej. Końce odcinków dzielą prostą na co najwyżej 2n fragmentów, które znajdujemy, sortując końce. Oznaczmy przez d(i ) długość tych fragmentów, które są pokryte tylko przez odcinek i, a przez d(i ; j ) długość tych, które są pokryte przez dwa odcinki i oraz j.

Demonstracje Iterujemy się po kolejnych fragmentach, pamiętając w secie, ile odcinków je pokrywa. Jeśli jeden lub dwa, to odpowiednio zwiększamy wartości d. Jeśli teraz chcemy usunąć odcinki i oraz j, to mamy dwa przypadki: Jeśli d(i ; j ) > 0, to możemy usunąć pokrycie długości d(i ; j ) + d(i ) + d(j ). Aby uwzględnić ten przypadek, sprawdzamy wszystkie fragmenty pokryte przez dwa odcinki. Jeśli d(i ; j ) = 0, to możemy usunąć pokrycie długości d(i ) + d(j ). Tutaj wystarczy rozważyć takie dwa odcinki, które dają największe wartości d. Czas działania to O(n log n), gdyż musimy posortować końce odcinków oraz utrzymywać wartości d(i ; j ) w mapie.

e j f d i b k a h g c Inżynieria genetyczna Autor zadania: Tomasz Idziaszek Zgłoszenia: 115 z 935 (12%) Zaakceptowane przez 24 z 52 drużyn (46%) AC WA 47 (40%) TLE RE

Inżynieria genetyczna Mamy ciąg n liczb. Należy z niego wykreślić minimalną liczbę wyrazów, aby powstały ciąg był poprawny (tzn. składał się z k-wyrazowych fragmentów zawierających tę samą liczbę), a ponadto był najmniejszy leksykograficznie. 3 2 3 1 3 1 1 2 4 2 1 1 2

Inżynieria genetyczna Wyznaczamy tablicę d, gdzie d[i ] to największa długość poprawnego ciągu zawartego w sufiksie zaczynającym się od i-tego wyrazu. Wystarczy iść od tyłu, liczyć wystąpienia poszczególnych liczb i zwiększać wynik, gdy któreś wystąpienie dobije do k. Jeśli wiemy, że optymalne rozwiązanie składa się z b fragmentów, to pierwszy fragment musi kończyć się na takiej pozycji i, że d[i + 1] = b 1. Znajdujemy największe takie i i spośród liczb występujących co najmniej k razy w prefiksie długości i wybieramy najmniejszą. Analogicznie znajdujemy pozostałe fragmenty. W rozwiązaniu utrzymujemy tablicę zliczającą wystąpienia liczb w kawałkach ciągu. Aby ją szybko wyczyścić, wystarczy jeszcze raz przejrzeć dany kawałek. Rozwiązanie działa w czasie O(n).

e j f d i b k a h g c Bajthattan Autor zadania: Jakub Łącki Zgłoszenia: 25 z 935 (2%) Zaakceptowane przez 9 z 52 drużyn (17%) AC 9 (36%) WA TLE RE

Bajthattan Dany jest graf planarny w postaci siatki kwadratowej n n. Z grafu kolejno usuwane są krawędzie i po każdym usunięciu musimy stwierdzić, czy istnieje ścieżka między końcami usuniętej krawędzi. Format danych wymusza rozwiązanie on-line. Jeśli ścieżka pomiędzy końcami usuniętej krawędzi nie istnieje, to usunięcie tej krawędzi spowodowało, że końce znalazły się w różnych spójnych składowych grafu. Równoważnie zatem możemy badać, które usunięcia zwiększają liczbę spójnych składowych grafu.

Bajthattan Korzystamy ze wzoru Eulera. Jeśli v, e, f i s to liczba wierzchołków, krawędzi, ścian i spójnych składowych grafu planarnego, to zachodzi v e + f = s + 1: Rozważmy usunięcie jednej krawędzi. Wartość v jest stała, natomiast e zmniejsza się o jeden. Jeśli po obu stronach usuwanej krawędzi mieliśmy tę samą ścianę, to f się nie zmienia (i wtedy s rośnie o jeden), w przeciwnym wypadku f maleje o jeden (i wtedy s się nie zmienia). Powyższy warunek możemy testować, trzymając strukturę find-and-union na ścianach grafu. W momencie, gdy usuwamy krawędź, dwie ściany należy połączyć. Rozwiązanie działa w czasie O(n 2 + k log n), gdzie k to liczba usunięć krawędzi.

e j f d i b k a h g c Kocyki Autor zadania: Jakub Łącki Zgłoszenia: 101 z 935 (10%) Zaakceptowane przez 7 z 52 drużyn (13%) AC WA 52 (51%) TLE RE

Kocyki Na płaszczyźnie znajduje się n prostokątów o wymiarach a b (boki długości a są równoległe do siebie). Chcemy wyznaczyć wartość oczekiwaną pola powierzchni części wspólnej dwóch losowo wybranych prostokątów. Wyznaczamy sumę przecięć wszystkich par prostokątów i dzielimy przez n(n+1) 2. Suma przecięć może być rzędu n 2 M 2, zatem albo pamiętamy ją w typie long double, albo sukcesywnie dzielimy przez n(n+1) 2, utrzymując ułamek mieszany.

Kocyki Wykonujemy zamiatanie od lewej do prawej. Dla pionowego paska pomiędzy dwoma zdarzeniami miotły wyznaczamy sumę pól przecięć par prostokątów ograniczonych do tego paska. Wobec tego na miotle mamy problem jednowymiarowy: wkładamy do niej i wyjmujemy z niej odcinki ustalonej długości oraz pytamy się o sumę długości przecięć odcinków na miotle. Złożoność czasowa O(n log n).

Kocyki Miotłę można zaimplementować za pomocą drzewa przedziałowego indeksowanego początkami odcinków, które potrafi wyznaczyć liczbę odcinków i sumę początków odcinków na zadanym przedziale. Wstawiając nowy odcinek do miotły, uwzględniamy osobno przecięcia z odcinkami zaczynającymi się wcześniej, a osobno z zaczynającymi się nie wcześniej. Dla tych pierwszych suma długości przecięć ze wstawionym odcinkiem to: P k i=1 (x i + a) k x : x k. x 2 x 1 x a

e j f d i b k a h g c Autostrada Autor zadania: Jakub Radoszewski Zgłoszenia: 64 z 935 (6%) Zaakceptowane przez 6 z 52 drużyn (11%) AC WA 33 (51%) TLE RE

Autostrada Na prostej zaznaczone jest n punktów o współrzędnych a 1 ; : : : ; a n. Chcemy zaznaczyć na niej równo oddalone od siebie punkty b i = y + x i, tak żeby b 1 a 1 b 2 a 2 : : : a n 1 b n a n b n+1: Wyznaczyć przedział wartości x, dla którego da się to zrobić. Wartości (x ; y), dla których istnieje rozwiązanie, spełniają nierówności y + x i a i y + x (i + 1), czyli a i x (i + 1) y a i x i : Dla ustalonego x możemy w czasie O(n) znaleźć różnicę f (x ) między ograniczeniem górnym na y a ograniczeniem dolnym na y.

Autostrada y f (x ) x 1 x x 2 x Wyszukiwaniem ternarnym znajdujemy takie x, dla którego f (x ) jest największe. Wyszukiwaniem binarnym znajdujemy w przedziałach (0; x ] i [x ; 1) takie x 1 i x 2, że f (x 1 ) = f (x 2 ) = 0. Czas działania to O(n log M ).

e j f d i b k a h g c Heros Autor zadania: Tomasz Idziaszek Zgłoszenia: 47 z 935 (5%) Zaakceptowane przez 4 z 52 drużyn (7%) AC WA 23 (48%) TLE RE

Heros Dany jest ważony graf skierowany o n wierzchołkach, przy czym stopień wyjściowy jest ograniczony przez 10. Mamy też p informacji, że pewien wierzchołek jest niedostępny w pewnym przedziale czasu. Chcemy znaleźć najkrótszą ścieżkę między zadaną parą wierzchołków. Jeśli dla wierzchołka v mamy ` przedziałów niedostępności, to dzielimy ten wierzchołek na ` + 1 wierzchołków v 0 ; : : : ; v ` odpowiadających za spójne kawałki czasu, w których v jest dostępny. Teraz dla każdego v i chcemy wyznaczyć minimalną chwilę zawartą w przedziale dostępności v i, w której możemy dotrzeć do v.

Heros Korzystamy z algorytmu Dijkstry. W nowym grafie mamy co najwyżej n + p wierzchołków i 10(n + p) krawędzi. Musimy uważać na krawędzie. Jeśli dojechaliśmy do wierzchołka v i w czasie t i relaksujemy krawędź vu, to potencjalnie musimy rozważyć wiele wierzchołków u j. Ale wszystkie poza pierwszym już nigdy nie zostaną poprawione, więc możemy je usunąć z dalszych relaksacji. u 1 u 2 u 3 v i t Złożoność czasowa O((n + p) log(n + p)).

e j f d i b k a h g c Gra w kulki Autor zadania: Jakub Radoszewski Zgłoszenia: 32 z 935 (3%) Zaakceptowane przez 2 z 52 drużyn (3%) AC WA 26 (81%) TLE

Gra w kulki Mamy parzystą liczbę kulek, każda zawiera jedną cyfrę. Czy da się podzielić kulki na dwa równoliczne zbiory, tak by iloczyn cyfr w każdym zbiorze był równy? Na początek trywialne przypadki: Jeśli jest jedno 0, to NIE. Jeśli jest więcej zer, to TAK. Liczba piątek musi być parzysta, tak samo liczba siódemek. Pozostałe cyfry są iloczynami 2 i 3. Można więc sprawdzać też inne warunki, np. Jeśli liczba czynników 2 lub 3 w iloczynie wszystkich kulek jest nieparzysta, to NIE.

Gra w kulki Kluczowy warunek: Jeśli istnieje rozwiązanie, to istnieje takie, w którym liczba kulek zawierających daną cyfrę nie różni się w zbiorach o więcej niż 6. Dowód poprawności powyższego warunku nie jest prosty (my wspomagaliśmy się komputerem). Dzięki niemu można napisać przeszukiwanie z nawrotami, które mieści się w limicie czasu.

e j f d i b k a h g c Cieśla Autor zadania: Tomasz Idziaszek Zgłoszenia: 22 z 935 (2%) Zaakceptowane przez 0 z 52 drużyn (0%) WA 18 (81%) TLERE

Cieśla Dany jest prostokąt n m, w którym pola zamalowano na biało lub czarno. Chcemy wyciąć z niego dwa trójkąty, które po sklejeniu dadzą nam jak największą kwadratową szachownicę. Oba trójkąty muszą być prostokątne równoramienne, pokolorowane w szachownicę, o tym samym kolorze pola przy kącie prostym. Można je rozdzielić linią prostą (poziomą, pionową lub w jednym z dwóch kierunków skośnych).

Cieśla Dla każdej z O(n + m) półpłaszczyzn wyznaczonych przez te proste i koloru przy kącie prostym chcemy wyznaczyć rozmiar największego trójkąta pokolorowanego w szachownicę zawartego w tej półpłaszczyźnie. Dla ustalonego trójkąta pokolorowanego w szachownicę możemy rozważyć 8 półpłaszczyzn, które go zawierają:

Cieśla Dla każdego pola możemy wyznaczyć maksymalny trójkąt pokolorowany w szachownicę, który ma kąt prosty na tym polu. Metodami znanymi z zadania Działka można to dla każdej z 4 orientacji zrobić w czasie O(nm). Dla każdej półpłaszczyzny mamy zatem największy maksymalny trójkąt, który dotyka brzegu półpłaszyzny. Zamiataniem możemy wyznaczyć największy trójkąt, który dotyka brzegu (tu musimy pamiętać, czy brzeg półpłaszczyzny dotyka wierzchołka przy kącie). Drugim zamiataniem możemy wyznaczyć największy trójkąt zawarty w półpłaszczyźnie. Czas działania O(nm).

koniec