Omówienie zadań. Potyczki Algorytmiczne 2016

Podobne dokumenty
Lista 4. Kamil Matuszewski 22 marca 2016

Akademickie Mistrzostwa Polski w Programowaniu Zespołowym

Luty 2001 Algorytmy (4) 2000/2001

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Łyżwy - omówienie zadania

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Nierówność Krafta-McMillana, Kodowanie Huffmana

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Matematyka dyskretna - 7.Drzewa

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

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

TEORETYCZNE PODSTAWY INFORMATYKI

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

Algebra liniowa z geometrią

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

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

Akademickie Mistrzostwa Polski w Programowaniu Zespołowym

Graf. Definicja marca / 1

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

Lista zadań - Relacje

Przykładowe zadania z teorii liczb

Joanna Kluczenko 1. Spotkania z matematyka

Algorytmiczna teoria grafów

Lista 0. Kamil Matuszewski 1 marca 2016

Dynamiczne drzewa. Piotr Sankowski. - p. 1/27

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

6. FUNKCJE. f: X Y, y = f(x).

Algorytmiczne Aspekty Teorii Gier Rozwiązania zadań

Znajdowanie skojarzeń na maszynie równoległej

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

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

ALGORYTMY I STRUKTURY DANYCH

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Kompresja bezstratna. Entropia. Kod Huffmana

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

3. FUNKCJA LINIOWA. gdzie ; ół,.

Digraf. 13 maja 2017

Kryteria ocen z matematyki w klasie IV

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

FUNKCJA LINIOWA, RÓWNANIA I UKŁADY RÓWNAŃ LINIOWYCH

Rekurencja. Przykład. Rozważmy ciąg

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

O MACIERZACH I UKŁADACH RÓWNAŃ

7. CIĄGI. WYKŁAD 5. Przykłady :

FUNKCJE I RÓWNANIA KWADRATOWE. Lekcja 78. Pojęcie i wykres funkcji kwadratowej str

Matematyka Dyskretna - zadania

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Indukcja matematyczna. Zasada minimum. Zastosowania.

V Konkurs Matematyczny Politechniki Białostockiej

domykanie relacji, relacja równoważności, rozkłady zbiorów

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14

Sortowanie topologiczne skierowanych grafów acyklicznych

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Matematyka II. Bezpieczeństwo jądrowe i ochrona radiologiczna Semestr letni 2018/2019 wykład 13 (27 maja)

========================= Zapisujemy naszą funkcję kwadratową w postaci kanonicznej: 2

1. A 2. A 3. B 4. B 5. C 6. B 7. B 8. D 9. A 10. D 11. C 12. D 13. B 14. D 15. C 16. C 17. C 18. B 19. D 20. C 21. C 22. D 23. D 24. A 25.

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

Dynamiczne drzewa. Marian M. Kędzierski. 26 listopada Wstęp Euler-Tour Trees Dynamiczna spójność Algorytm Dinica Link-Cut Trees

Zad.3. Jakub Trojgo i Jakub Wieczorek. 14 grudnia 2013

I V X L C D M. Przykłady liczb niewymiernych: 3; 2

Problemy Decyzyjne dla Systemów Nieskończonych

Temat: Algorytm kompresji plików metodą Huffmana

Wymagania kl. 3. Zakres podstawowy i rozszerzony

Matematyka dyskretna

FUNKCJA LINIOWA - WYKRES. y = ax + b. a i b to współczynniki funkcji, które mają wartości liczbowe

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

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

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

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

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Bukiety matematyczne dla gimnazjum

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

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

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

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Zajęcia nr. 3 notatki

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Przykładowe rozwiązania zadań. Próbnej Matury 2014 z matematyki na poziomie rozszerzonym

3) Naszkicuj wykres funkcji y=-xdo kwadratu+2x+1 i napisz równanie osi symetrii jej wykresu.

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Akademickie Mistrzostwa Polski w Programowaniu Zespołowym

FUNKCJA LINIOWA - WYKRES

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

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Matematyka dyskretna. Andrzej Łachwa, UJ, A/10

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

Kolorowanie wierzchołków

Funkcja jednej zmiennej - przykładowe rozwiązania 1. Badając przebieg zmienności funkcji postępujemy według poniższego schematu:

Lista 4. Kamil Matuszewski 10 maja 2016

Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne.

Transkrypt:

Omówienie zadań

Turniej Najszybsze rozwiązanie: Mateusz Radecki (0:07)

Weźmy taki graf, że istnieje bijekcja między zawodnikami i wierzchołkami. Ponadto niech krawędź skierowana między wierzchołkami v, w nie istnieje wtedy i tylko wtedy, gdy v na pewno przegra z w. Omówienie zadania Turniej

Zauważmy, że gracze grają po kolei. Zawsze między wygranym i pokonanym będzie istniała skierowana krawędź. Z tego wynika, że od zwycięzcy będzie istniała ścieżka prosta do każdego wierzchołka. Omówienie zadania Turniej

Zasymulujmy turniej. Mamy potencjalnego wygrywającego. Z każdego innego potencjalnego wygranego musi istnieć ścieżka do wyznaczonego wygranego. Ponadto istnienie ścieżki do wygranego z symulacji jest warunkiem dostatecznym bycia potencjalnym wygrywającym. Omówienie zadania Turniej

Łamana Najszybsze rozwiązanie: Kamil Dębowski (0:29)

Ile jest łamanych, których długość (po odpowiednim zaokrągleniu) jest równa l? Omówienie zadania Łamana

Liczba łamanych Łamanych o a odcinkach pionowych/poziomych oraz b odcinkach ukośnych istnieje ( ) a + b 2 a b Omówienie zadania Łamana

Liczba łamanych Łamanych o a odcinkach pionowych/poziomych oraz b odcinkach ukośnych istnieje ( ) a + b 2 a b Wystarczy tylko wyznaczyć rozwiązania równania: a + b 2 l i posumować liczbę łamanych o odpowiednich parametrach. Omówienie zadania Łamana

Gdyby założyć, że odpowiedzią nie jest SPORO, wtedy wystarczy sprawdzić tylko a {0, 1, 2,..., 59}, bo dla większych a jest więcej niż 10 18 łamanych. Omówienie zadania Łamana

Gdyby założyć, że odpowiedzią nie jest SPORO, wtedy wystarczy sprawdzić tylko a {0, 1, 2,..., 59}, bo dla większych a jest więcej niż 10 18 łamanych. Dla ustalonego b zmieniając a zmienia się tylko część całkowita długości łamanej. Część ułamkowa pozostaje bez zmian. Różnych części ułamkowych po zaokrągleniu do sześciu cyfr po kropce dziesiętnej jest tylko milion. Omówienie zadania Łamana

Pomysł Gdyby założyć, że odpowiedzią nie jest SPORO, wtedy wystarczy sprawdzić tylko a {0, 1, 2,..., 59}, bo dla większych a jest więcej niż 10 18 łamanych. Dla ustalonego b zmieniając a zmienia się tylko część całkowita długości łamanej. Część ułamkowa pozostaje bez zmian. Różnych części ułamkowych po zaokrągleniu do sześciu cyfr po kropce dziesiętnej jest tylko milion. Odwracając nieco powyższe rozumowanie: dla każdej części ułamkowej x (równej 000000, 000001,... lub 999999) istnieje (stosunkowo nieduże) b, że b b x. Omówienie zadania Łamana

Pomysł Gdyby założyć, że odpowiedzią nie jest SPORO, wtedy wystarczy sprawdzić tylko a {0, 1, 2,..., 59}, bo dla większych a jest więcej niż 10 18 łamanych. Dla ustalonego b zmieniając a zmienia się tylko część całkowita długości łamanej. Część ułamkowa pozostaje bez zmian. Różnych części ułamkowych po zaokrągleniu do sześciu cyfr po kropce dziesiętnej jest tylko milion. Odwracając nieco powyższe rozumowanie: dla każdej części ułamkowej x (równej 000000, 000001,... lub 999999) istnieje (stosunkowo nieduże) b, że b b x. Naiwne sprawdzenie pozwala stwierdzić, że wszystkie części ułamkowe pojawią się już dla b 1.7 10 6. To znaczy, że dla l 2.5 10 6, odpowiedź jest zawsze SPORO. Omówienie zadania Łamana

Dwie ścieżki Najszybsze rozwiązanie: Mariusz Trela (1:08)

Dany jest DAG. Pytamy do jakich wierzchołków możemy dotrzeć dwoma rozłącznymi krawędziowo ścieżkami z wierzchołka o numerze 1. Omówienie zadania Dwie ścieżki

Definicje Wierzchołkiem dobrym nazwijmy jeden z wierzchołków o szukanej własności (dwie rozłączne krawędziowo ścieżki z 1). Kodem ścieżki z 1 nazywamy ostatnią krawędź na niej, która wychodzi z wierzchołka dobrego. Omówienie zadania Dwie ścieżki

Definicje Wierzchołkiem dobrym nazwijmy jeden z wierzchołków o szukanej własności (dwie rozłączne krawędziowo ścieżki z 1). Kodem ścieżki z 1 nazywamy ostatnią krawędź na niej, która wychodzi z wierzchołka dobrego. Lemat Wierzchołek v jest dobry wtedy i tylko wtedy, gdy v = 1, lub da się do niego dojść ścieżkami o dwóch różnych kodach. Omówienie zadania Dwie ścieżki

Definicje Wierzchołkiem dobrym nazwijmy jeden z wierzchołków o szukanej własności (dwie rozłączne krawędziowo ścieżki z 1). Kodem ścieżki z 1 nazywamy ostatnią krawędź na niej, która wychodzi z wierzchołka dobrego. Lemat Wierzchołek v jest dobry wtedy i tylko wtedy, gdy v = 1, lub da się do niego dojść ścieżkami o dwóch różnych kodach. Szkic dowodu : trywialne. : budujemy rozłączne krawędziowo (i wierzchołkowo poza dobrymi wierzchołkami) ścieżki kończące się w rozważanym dobrym wierzchołku, dobudowując kolejne fragmenty od krawędzi, których kody mamy. Trzeba rozważyć kilka prostych przypadków. Omówienie zadania Dwie ścieżki

Algorytm Rozważamy wierzchołki w porządku topologicznym. Jeżeli prowadzą do niego dwie ścieżki o różnych kodach, to na mocy lematu jest on dobry, więc zaznaczamy go takim i krawędziom od niego nadajemy nowe kody. W przeciwnym wypadku mamy ścieżkę o tym samym kodzie i przenosimy kod dalej. Złożoność: O(n + m). Omówienie zadania Dwie ścieżki

Osiągalność Najszybsze rozwiązanie: Marek Sokołowski (1:36)

Graf G = (V, E) skierowany jest narysowany w kwadracie [0, 1] [0, 1] tak, że podzbiór Y V leży na osi OY, a podzbiór jego wierzchołków X leży na osi OX. Omówienie zadania Osiągalność

Graf G = (V, E) skierowany jest narysowany w kwadracie [0, 1] [0, 1] tak, że podzbiór Y V leży na osi OY, a podzbiór jego wierzchołków X leży na osi OX. Dla y Y i x X, niech A y,x = 1 wtedy gdy w G istnieje ścieżka y x, a A y,x = 0 w przeciwnym przypadku. Omówienie zadania Osiągalność

Graf G = (V, E) skierowany jest narysowany w kwadracie [0, 1] [0, 1] tak, że podzbiór Y V leży na osi OY, a podzbiór jego wierzchołków X leży na osi OX. Dla y Y i x X, niech A y,x = 1 wtedy gdy w G istnieje ścieżka y x, a A y,x = 0 w przeciwnym przypadku. Na ile sposobów może wyglądać macierz A? Omówienie zadania Osiągalność

Dokładne położenia X i Y na osiach nie mają znaczenia. Omówienie zadania Osiągalność

Dokładne położenia X i Y na osiach nie mają znaczenia. Posortujmy Y w kolejności malejących współrzędnych y, a X w kolejności rosnących współrzędnych x. Omówienie zadania Osiągalność

Dokładne położenia X i Y na osiach nie mają znaczenia. Posortujmy Y w kolejności malejących współrzędnych y, a X w kolejności rosnących współrzędnych x. y 1 y 2 o x 1 x 2 Omówienie zadania Osiągalność

Dokładne położenia X i Y na osiach nie mają znaczenia. Posortujmy Y w kolejności malejących współrzędnych y, a X w kolejności rosnących współrzędnych x. y 1 y 2 o x 1 x 2 Omówienie zadania Osiągalność

Dokładne położenia X i Y na osiach nie mają znaczenia. Posortujmy Y w kolejności malejących współrzędnych y, a X w kolejności rosnących współrzędnych x. y 1 y 2 o x 1 x 2 Omówienie zadania Osiągalność

Dokładne położenia X i Y na osiach nie mają znaczenia. Posortujmy Y w kolejności malejących współrzędnych y, a X w kolejności rosnących współrzędnych x. y 1 y 2 o x 1 x 2 Omówienie zadania Osiągalność

Dokładne położenia X i Y na osiach nie mają znaczenia. Posortujmy Y w kolejności malejących współrzędnych y, a X w kolejności rosnących współrzędnych x. y 1 y 2 o x 1 x 2 Omówienie zadania Osiągalność

Dokładne położenia X i Y na osiach nie mają znaczenia. Posortujmy Y w kolejności malejących współrzędnych y, a X w kolejności rosnących współrzędnych x. y 1 y 1 y 2 y 2 o x 1 x 2 x 1 x 2 Omówienie zadania Osiągalność

Dokładne położenia X i Y na osiach nie mają znaczenia. Posortujmy Y w kolejności malejących współrzędnych y, a X w kolejności rosnących współrzędnych x. y 1 y 1 1 y 2 y 2 1 o x 1 x 2 x 1 x 2 Omówienie zadania Osiągalność

Dokładne położenia X i Y na osiach nie mają znaczenia. Posortujmy Y w kolejności malejących współrzędnych y, a X w kolejności rosnących współrzędnych x. y 1 y 1 1 1 y 2 y 2 1 1 o x 1 x 2 x 1 x 2 Omówienie zadania Osiągalność

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Omówienie zadania Osiągalność

1 1 1 1 1 1 k 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 l r Niech R(k, l, r) oznacza liczbę macierzy rozmiaru n m tego typu takich, że przedział jedynek w k-tym wierszu od góry są w przedziale [l, r], a niższe wiersze są zgodne z [l, r]. Omówienie zadania Osiągalność

1 1 1 1 1 1 k 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 l r Niech R(k, l, r) oznacza liczbę macierzy rozmiaru n m tego typu takich, że przedział jedynek w k-tym wierszu od góry są w przedziale [l, r], a niższe wiersze są zgodne z [l, r]. Przejścia: musimy sie przeiterować po możliwych przedziałach w (k 1)-tym wierszu od góry. Omówienie zadania Osiągalność

Czyli tak naprawdę musimy zsumować wartości R(k 1, l, r ) takie, że l [l, r + 1], r [max(l, r), m]. Omówienie zadania Osiągalność

Czyli tak naprawdę musimy zsumować wartości R(k 1, l, r ) takie, że l [l, r + 1], r [max(l, r), m]. Brutalne sumowanie dałoby rozwiązanie ok. O(N 5 ), gdzie N = max(n, m). Omówienie zadania Osiągalność

Czyli tak naprawdę musimy zsumować wartości R(k 1, l, r ) takie, że l [l, r + 1], r [max(l, r), m]. Brutalne sumowanie dałoby rozwiązanie ok. O(N 5 ), gdzie N = max(n, m). Można jednak zauważyć, że sumujemy tak naprawdę po sumie prostokątów [l, r] [r, m] i [r + 1, r + 1] [r + 1, m]. Dodając sumy prefiksowe, możemy obliczać przejścia w czasie stałym, dostając rozwiązanie O(N 3 ). Omówienie zadania Osiągalność

Czyli tak naprawdę musimy zsumować wartości R(k 1, l, r ) takie, że l [l, r + 1], r [max(l, r), m]. Brutalne sumowanie dałoby rozwiązanie ok. O(N 5 ), gdzie N = max(n, m). Można jednak zauważyć, że sumujemy tak naprawdę po sumie prostokątów [l, r] [r, m] i [r + 1, r + 1] [r + 1, m]. Dodając sumy prefiksowe, możemy obliczać przejścia w czasie stałym, dostając rozwiązanie O(N 3 ). Puste wiersze i kolumny obsługujemy domnażając odpowiednio współczynniki dwumianowe. Omówienie zadania Osiągalność

Skojarzenie Najszybsze rozwiązanie:??? (?:??)

Dane jest drzewo. Trzeba znaleźć liczbę par wierzchołków, których połączenie zwiększy rozmiar maksymalnego skojarzenia. Omówienie zadania Skojarzenie

Dla każdego poddrzewa i każdego poddrzewa z usuniętym korzeniem obliczmy dynamicznie: Wielkość maksymalnego skojarzenia. Liczbę wierzchołków, które mogą być niepokryte w przez takie skojarzenie. Liczbę par wierzchołków, które mogą być niepokryte przez takie skojarzenie. Obliczamy również dla każdego poddrzewa: Liczbę wierzchołków, które mogą być niepokryte w obu tych przypadkach. Liczbę par wierzchołków, które mogą być niepokryte w obu tych przypadkach. Omówienie zadania Skojarzenie

Dopasowanie Najszybsze rozwiązanie:??? (?:??)

Dany jest wzorzec p 0..m 1, tekst t 0..n 1 i liczba k (0 k 10). Czy istnieje takie podsłowo w tekście, które jest prawie równe wzorcowi, czyli można przekształcić jedno w drugie poprzez ciąg co najwyżej k operacji wstawienia litery, usunięcia litery, zamiany litery na inną? Omówienie zadania Dopasowanie

Niech D k,i to największe s takie, że fragment wzorca p 0..s 1 możemy dopasować do fragmentu tekstu kończącego się na t i+s 1, wykonując co najwyżej k operacji Do obliczenia wartości D k,i potrzebujemy wartości D k 1,i 1..i+1 i trzech wywołań funkcji znajdującej najdłuższy wspólne podsłowo tekstu i wzorca zaczynające się od danych pozycji (np. haszowanie Karpa-Rabina albo KMR, O(log n)). Złożoność czasowa O(k(n + k) log(n)) Rozwiązanie alternatywne: próbujemy zaczynać od kolejnych pól, dopasowujemy ile się da, jak się nie da dalej to próbujemy wykonać wszystkie możliwe operacje (rekurencja ze spamiętywaniem), aż zużyjemy wszystkie operacje albo dopasujemy cały wzorzec. Omówienie zadania Dopasowanie

Waga Najszybsze rozwiązanie:??? (?:??)

Bajtazar posiada wagę, która wynik ważenia zaokrągla do wielokrotności c gramów lub wyświetla błąd jeśli masa wynosi co najmniej c k gramów. Dany zbiór wag przedmiotów, pytanie ile par może on odróżnić wykorzystując do tego celu swoją wagę. Omówienie zadania Waga

Lemat Bajtazar może porównać przedmioty o wagach a i b Istnieje podzbiór pozostałych przedmiotów o masie x, taki że wskazanie wagi w przypadku ładunku o masie a + x jest inne niż dla ładunku o masie b + x Omówienie zadania Waga

Lemat Bajtazar może porównać przedmioty o wagach a i b Istnieje podzbiór pozostałych przedmiotów o masie x, taki że wskazanie wagi w przypadku ładunku o masie a + x jest inne niż dla ładunku o masie b + x Dowód : Oczywiste : Jeśli zmienilibyśmy wagi przedmiotów a oraz b na a+b 2, to wynik ważenie każdego podzbioru przedmiotów pozostanie taki sam. Omówienie zadania Waga

Lemat Bycie nieporównywalnym jest relacją równoważności, a klasy abstrakcji tworzą spójne przedziały wag. Omówienie zadania Waga

Lemat Bycie nieporównywalnym jest relacją równoważności, a klasy abstrakcji tworzą spójne przedziały wag. Dowód Załóżmy, że a jest nieporównywalne z b, a b jest nieporównywalne z c. Po podstawieniu a+b 2 za a oraz b, jasno widać, że b jest nieporównywalne z c. Dla danych a c b takich, że a jest nieporównywane z b można zmienić wagę a na c, a wagę b na a + b c nie zmieniając wskazań wagi. Omówienie zadania Waga

"Plecak bez jednego" Obliczmy dla każdej pary sąsiednich przedmiotów i każdej reszty modulo c, jaka jest minimalna waga podzbioru pozostałych przedmiotów dająca daną resztę. Dodajemy dynamicznie pierwszą połowę przedmiotów i obliczmy wynik rekurencyjnie dla drugiej. Dodajemy dynamicznie drugą połowę przedmiotów i obliczamy wynik rekurencyjnie dla pierwszej. Złożoność: O(nc log n). Omówienie zadania Waga

Mrówki Najszybsze rozwiązanie:??? (?:??)

Dane jest drzewo z wagami na krawędziach (czasy przejścia danej krawędzi przez mrówkę). Po drzewie porusza się m mrówek. i-ta mrówka pojawia się w chwili t i w wierzchołku a i i idzie do wierzchołka b i. Dla każdej mrówki policz największą liczbę innych mrówek, z którymi spotka się jednocześnie podczas swojej wędrówki. Omówienie zadania Mrówki

Rozważmy dla uproszczenia wersję zadania na prostej. Czyli i-ta mrówka startuje w chwili t i z punktu a i, i dociera do celu b i po czasie t i + b i a i. Po obrocie o 45 mamy odcinki poziome i pionowe. Dla każdego z nich oblicz, z iloma innymi odcinkami spotyka się on w jednym punkcie. Wystarczy policzyć wyniki dla pionowych dla poziomych liczy się analogicznie. Omówienie zadania Mrówki

Zamiatanie od lewej do prawej dla każdej wartości X, dla której coś się dzieje: 1 dodaj wsystkie poziome o x 1 = X : t[y] + + 2 dodaj wszystkie pionowe o x = X : t[y 1..y 2 ] + + 3 dla każdego odcinka pionowego oblicz wynik: wynik = max(t[y 1..y 2 ]) 4 usuń wszystkie odcinki pionowe o x = X : t[y 1..y 2 ] 5 usuń wszystkie odcinki poziome o x 2 = X : t[y] Operacje na t realizujemy na drzewie przedziałowym (musimy skompresować możliwe współrzędne), czas O(m log m) Omówienie zadania Mrówki

Aby to uogólnić na drzewo, używamy tzw. heavy light decomposition. ukorzeniamy drzewo dla każdego wierzchołka drzewa łączymy krawędź do ojca z najcięższą krawędzią prowadzącą w dół, czyli tą, która prowadzi do największej liczby wierzchołków. W ten sposób rozkładamy nasze drzewo na pewną liczbę ścieżek ciężkich idąc od korzenia w dół możemy jedynie O(log n) razy wybrać krawędź nie będącą krawędzią najcięższą także każdą trasę mrówki rozkładamy na O(log n) odcinków idących ścieżkami ciężkimi, dla każdej z nich wywołujemy algorytm na prostej Złożoność O(m log m log n) Omówienie zadania Mrówki