Omówienie zada«
Biznes Najszybsze rozwi zanie: Jarosªaw Kwiecie«(0:24)
Na pocz tku mamy kapitaª P (megabajtalarów) i dochody 0 (megabajtalary/rok). W dowolnym momencie mo»emy kupi maszyn typu i, co kosztuje c i, ale zwi ksza nasze dochody o d i. Jak najszybciej mo»na uzyska dochody na poziomie D? Omówienie zadania Biznes
Ogólny zarys strategii zakupu: (1) Kupujemy maszyny z kapitaªu pocz tkowego (2) Mamy dochód d i kapitaª p, chcemy kupi jak ± maszyn i o koszcie c i > p czekamy (c i p)/d, i kupujemy (3) Mamy dochód d i kapitaª 0, planujemy zakup jakiej± maszyny i czekamy c i /d i kupujemy (powtarzamy a» mamy D) Omówienie zadania Biznes
Ogólny zarys strategii zakupu: (1) Kupujemy maszyny z kapitaªu pocz tkowego (2) Mamy dochód d i kapitaª p, chcemy kupi jak ± maszyn i o koszcie c i > p czekamy (c i p)/d, i kupujemy (3) Mamy dochód d i kapitaª 0, planujemy zakup jakiej± maszyny i czekamy c i /d i kupujemy (powtarzamy a» mamy D) Faza (3): programowanie dynamiczne: dla d = D,..., 0 obliczamy t[d], czas do sukcesu przy dochodzie d (wybieramy optymalne i) Faza (1-2): programowanie dynamiczne: przechodzimy d = 0,..., D, dla ka»dego obliczamy p[d], najwi kszy pozostaªy kapitaª pocz tkowy, który mo»emy mie przy dochodzie d przechodzimy wszystkie maszyny i i (1) aktualizujemy p[d + d i ] lub (2) znajdujemy kandydata t[d + d i ] + (c i p)/d Omówienie zadania Biznes
Trójk ty Najszybsze rozwi zanie: Šukasz Marecik (0:57)
Danych jest n punktów na pªaszczy¹nie. Nale»y znale¹ liczb trójk tów prostok tnych o wierzchoªkach w danych punktach i o polu z danego przedziaªu. Omówienie zadania Trójk ty
Ustalamy wierzchoªek p przy k cie prostym i przesuwamy go na pocz tek ukªadu wspóªrz dnych. Omówienie zadania Trójk ty
Ustalamy wierzchoªek p przy k cie prostym i przesuwamy go na pocz tek ukªadu wspóªrz dnych. Grupujemy pozostaªe punkty po kierunkach, jakie tworz z osi OX. Kierunek dla punktu (x, y) wyznaczamy na przykªad normalizuj c ten punkt: dzielimy obie wspóªrz dne przez d, gdzie d = NWD( x, y ). Omówienie zadania Trójk ty
Ustalamy wierzchoªek p przy k cie prostym i przesuwamy go na pocz tek ukªadu wspóªrz dnych. Grupujemy pozostaªe punkty po kierunkach, jakie tworz z osi OX. Kierunek dla punktu (x, y) wyznaczamy na przykªad normalizuj c ten punkt: dzielimy obie wspóªrz dne przez d, gdzie d = NWD( x, y ). Niech Q (a,b) b dzie grup dla kierunku (a, b). Wtedy Q ( b,a) to grupa dla kierunku o 90 stopni wi kszego. Omówienie zadania Trójk ty
Ustalamy wierzchoªek p przy k cie prostym i przesuwamy go na pocz tek ukªadu wspóªrz dnych. Grupujemy pozostaªe punkty po kierunkach, jakie tworz z osi OX. Kierunek dla punktu (x, y) wyznaczamy na przykªad normalizuj c ten punkt: dzielimy obie wspóªrz dne przez d, gdzie d = NWD( x, y ). Niech Q (a,b) b dzie grup dla kierunku (a, b). Wtedy Q ( b,a) to grupa dla kierunku o 90 stopni wi kszego. Sortujemy punkty (x, y) w Q (a,b) po x 2 + y 2. Omówienie zadania Trójk ty
Ustalamy wierzchoªek p przy k cie prostym i przesuwamy go na pocz tek ukªadu wspóªrz dnych. Grupujemy pozostaªe punkty po kierunkach, jakie tworz z osi OX. Kierunek dla punktu (x, y) wyznaczamy na przykªad normalizuj c ten punkt: dzielimy obie wspóªrz dne przez d, gdzie d = NWD( x, y ). Niech Q (a,b) b dzie grup dla kierunku (a, b). Wtedy Q ( b,a) to grupa dla kierunku o 90 stopni wi kszego. Sortujemy punkty (x, y) w Q (a,b) po x 2 + y 2. Przechodzimy jednocze±nie dwoma wska¹nikami po Q (a,b) i Q ( b,a) i zliczamy trójk ty o» danym polu. Korzystamy tutaj z faktu,»e pole przy ustalonym jednym boku ro±nie wraz ze zwi kszaniem drugiego boku. W ten sposób uzyskamy rozwi zanie w czasie ok. O(n 2 log n). Omówienie zadania Trójk ty
Alternatywnie, mo»na zgadn,»e liczba wszystkich trójk tów prostok tnych na rysunku nie mo»e by zbyt du»a i przej± po ka»dej parze z Q (a,b) Q ( b,a). Czas tego rozwi zania jest proporcjonalny do liczby wszystkich trójk tów prostok tnych. Omówienie zadania Trójk ty
Kolorowania Najszybsze rozwi zanie: Jakub Tarnawski (1:58)
Mamy dane dwa kolorowania: ªadne (L) wykorzystuj ce co najwy»ej k kolorów, m dre (M) nie ma singletonów (pojedynczych wierzchoªków o danym kolorze). Szukamy kolorowania, które jest jednocze±nie ªadne i m dre. Omówienie zadania Kolorowania
Lemat Rozwi zanie zawsze istnieje. Omówienie zadania Kolorowania
Lemat Rozwi zanie zawsze istnieje. Dowód konstruktywny We¹my kolorowanie L. Je±li L jest m dre, to koniec. W przeciwnym razie L ma singleton (v). W kolorowaniu M zbiór W wierzchoªków o takim samym kolorze jak v ma wielko± co najmniej 2 i jest zbiorem niezale»nym. Przemalujmy wszystkie wierzchoªki z W w kolorowaniu L na L(v), a nast pnie usu«my W z grafu. Otrzymali±my mniejszy problem liczba kolorów w L i liczba wierzchoªków spadªy, a kolorowania dalej s ªadne i m dre. Omówienie zadania Kolorowania
Lemat Rozwi zanie zawsze istnieje. Dowód konstruktywny We¹my kolorowanie L. Je±li L jest m dre, to koniec. W przeciwnym razie L ma singleton (v). W kolorowaniu M zbiór W wierzchoªków o takim samym kolorze jak v ma wielko± co najmniej 2 i jest zbiorem niezale»nym. Przemalujmy wszystkie wierzchoªki z W w kolorowaniu L na L(v), a nast pnie usu«my W z grafu. Otrzymali±my mniejszy problem liczba kolorów w L i liczba wierzchoªków spadªy, a kolorowania dalej s ªadne i m dre. Rozwi zanie Šatwo zaimplementowa ten dowód w czasie liniowym. Omówienie zadania Kolorowania
Stany Najszybsze rozwi zanie: Jarosªaw Kwiecie«(2:27)
Mamy zaimplementowa struktur danych utrzymuj c podziaª P zbioru {0, 1,..., n 1}. Omówienie zadania Stany
Mamy zaimplementowa struktur danych utrzymuj c podziaª P zbioru {0, 1,..., n 1}. Podziaª mo»emy zmienia nast puj cymi operacjami: 1 union(a, B) dla A, B P zmienia nasz podziaª na P \ {A, B} (A B). 2 split(a, k) zmienia P na P \ A {A 1, A 2 }, gdzie A 1 = {a A : a < k}, A 2 = A \ A 1. Omówienie zadania Stany
Mamy zaimplementowa struktur danych utrzymuj c podziaª P zbioru {0, 1,..., n 1}. Podziaª mo»emy zmienia nast puj cymi operacjami: 1 union(a, B) dla A, B P zmienia nasz podziaª na P \ {A, B} (A B). 2 split(a, k) zmienia P na P \ A {A 1, A 2 }, gdzie A 1 = {a A : a < k}, A 2 = A \ A 1. Dla ka»dego a musimy te» umie znale¹ element podziaªu zawieraj cy a. Omówienie zadania Stany
Przyjmijmy,»e n = 2 B. Omówienie zadania Stany
Przyjmijmy,»e n = 2 B. Wyobra¹my sobie statyczne drzewo przedziaªowe T o li±ciach 0, 1,..., n 1. Wierzchoªki tego drzewa reprezentuj przedziaªy o dªugo±ciach b d cych pot gami dwójki. Omówienie zadania Stany
Przyjmijmy,»e n = 2 B. Wyobra¹my sobie statyczne drzewo przedziaªowe T o li±ciach 0, 1,..., n 1. Wierzchoªki tego drzewa reprezentuj przedziaªy o dªugo±ciach b d cych pot gami dwójki. Ka»dy zbiór A P reprezentujemy jako cz ± T A drzewa T. Mianowicie, usuwamy z T w zªy reprezentuj ce przedziaªy o pustym przeci ciu z A. Omówienie zadania Stany
Przyjmijmy,»e n = 2 B. Wyobra¹my sobie statyczne drzewo przedziaªowe T o li±ciach 0, 1,..., n 1. Wierzchoªki tego drzewa reprezentuj przedziaªy o dªugo±ciach b d cych pot gami dwójki. Ka»dy zbiór A P reprezentujemy jako cz ± T A drzewa T. Mianowicie, usuwamy z T w zªy reprezentuj ce przedziaªy o pustym przeci ciu z A. Przydaj si tutaj wska¹niki: nullptr reprezentuje usuni te poddrzewo. Omówienie zadania Stany
Przyjmijmy,»e n = 2 B. Wyobra¹my sobie statyczne drzewo przedziaªowe T o li±ciach 0, 1,..., n 1. Wierzchoªki tego drzewa reprezentuj przedziaªy o dªugo±ciach b d cych pot gami dwójki. Ka»dy zbiór A P reprezentujemy jako cz ± T A drzewa T. Mianowicie, usuwamy z T w zªy reprezentuj ce przedziaªy o pustym przeci ciu z A. Przydaj si tutaj wska¹niki: nullptr reprezentuje usuni te poddrzewo. Ka»dy li± a nale»y do dokªadnie jednego A P, wi c suma wielko±ci drzew T A nie przekracza n lg n. Omówienie zadania Stany
Przyjmijmy,»e n = 2 B. Wyobra¹my sobie statyczne drzewo przedziaªowe T o li±ciach 0, 1,..., n 1. Wierzchoªki tego drzewa reprezentuj przedziaªy o dªugo±ciach b d cych pot gami dwójki. Ka»dy zbiór A P reprezentujemy jako cz ± T A drzewa T. Mianowicie, usuwamy z T w zªy reprezentuj ce przedziaªy o pustym przeci ciu z A. Przydaj si tutaj wska¹niki: nullptr reprezentuje usuni te poddrzewo. Ka»dy li± a nale»y do dokªadnie jednego A P, wi c suma wielko±ci drzew T A nie przekracza n lg n. Wska¹niki do ojca w drzewach T A pozwalaj znajdowa zbiór, do którego nale»y dany element a. Omówienie zadania Stany
Przyjmijmy,»e n = 2 B. Wyobra¹my sobie statyczne drzewo przedziaªowe T o li±ciach 0, 1,..., n 1. Wierzchoªki tego drzewa reprezentuj przedziaªy o dªugo±ciach b d cych pot gami dwójki. Ka»dy zbiór A P reprezentujemy jako cz ± T A drzewa T. Mianowicie, usuwamy z T w zªy reprezentuj ce przedziaªy o pustym przeci ciu z A. Przydaj si tutaj wska¹niki: nullptr reprezentuje usuni te poddrzewo. Ka»dy li± a nale»y do dokªadnie jednego A P, wi c suma wielko±ci drzew T A nie przekracza n lg n. Wska¹niki do ojca w drzewach T A pozwalaj znajdowa zbiór, do którego nale»y dany element a. Trzeba te» utrzymywa sumy warto±ci w elementach podziaªu to jednak niezbyt ciekawy szczegóª techniczny. Omówienie zadania Stany
Obserwacja 1: drzewa T A i T B mo»na brutalnie poª czy w czasie O( T A + T B T A T B ). Omówienie zadania Stany
Obserwacja 1: drzewa T A i T B mo»na brutalnie poª czy w czasie O( T A + T B T A T B ). Obswerwacja 2: operacj split mo»na zaimplementowa w czasie O(lg n) w oczywisty sposób. Omówienie zadania Stany
Obserwacja 1: drzewa T A i T B mo»na brutalnie poª czy w czasie O( T A + T B T A T B ). Obswerwacja 2: operacj split mo»na zaimplementowa w czasie O(lg n) w oczywisty sposób. Zdeniujmy potencjaª Φ(P) = A P T A. Omówienie zadania Stany
Obserwacja 1: drzewa T A i T B mo»na brutalnie poª czy w czasie O( T A + T B T A T B ). Obswerwacja 2: operacj split mo»na zaimplementowa w czasie O(lg n) w oczywisty sposób. Zdeniujmy potencjaª Φ(P) = A P T A. Na pocz tku, gdy P = {{1}, {2},..., {n}}, mamy Φ(P) = n lg n. Omówienie zadania Stany
Obserwacja 1: drzewa T A i T B mo»na brutalnie poª czy w czasie O( T A + T B T A T B ). Obswerwacja 2: operacj split mo»na zaimplementowa w czasie O(lg n) w oczywisty sposób. Zdeniujmy potencjaª Φ(P) = A P T A. Na pocz tku, gdy P = {{1}, {2},..., {n}}, mamy Φ(P) = n lg n. unite zmniejsza potencjaª i dziaªa w czasie proporcjonalnym do tego zmniejszenia. Omówienie zadania Stany
Obserwacja 1: drzewa T A i T B mo»na brutalnie poª czy w czasie O( T A + T B T A T B ). Obswerwacja 2: operacj split mo»na zaimplementowa w czasie O(lg n) w oczywisty sposób. Zdeniujmy potencjaª Φ(P) = A P T A. Na pocz tku, gdy P = {{1}, {2},..., {n}}, mamy Φ(P) = n lg n. unite zmniejsza potencjaª i dziaªa w czasie proporcjonalnym do tego zmniejszenia. split zwi ksza potencjaª o najwy»ej lg n. Omówienie zadania Stany
Obserwacja 1: drzewa T A i T B mo»na brutalnie poª czy w czasie O( T A + T B T A T B ). Obswerwacja 2: operacj split mo»na zaimplementowa w czasie O(lg n) w oczywisty sposób. Zdeniujmy potencjaª Φ(P) = A P T A. Na pocz tku, gdy P = {{1}, {2},..., {n}}, mamy Φ(P) = n lg n. unite zmniejsza potencjaª i dziaªa w czasie proporcjonalnym do tego zmniejszenia. split zwi ksza potencjaª o najwy»ej lg n. Wniosek: m operacji zajmie czas O((n + m) lg n). Omówienie zadania Stany
Obserwacja 1: drzewa T A i T B mo»na brutalnie poª czy w czasie O( T A + T B T A T B ). Obswerwacja 2: operacj split mo»na zaimplementowa w czasie O(lg n) w oczywisty sposób. Zdeniujmy potencjaª Φ(P) = A P T A. Na pocz tku, gdy P = {{1}, {2},..., {n}}, mamy Φ(P) = n lg n. unite zmniejsza potencjaª i dziaªa w czasie proporcjonalnym do tego zmniejszenia. split zwi ksza potencjaª o najwy»ej lg n. Wniosek: m operacji zajmie czas O((n + m) lg n). Ró»ne rozwi zania typu O(n n) tak»e byªy akceptowane. Omówienie zadania Stany
O±wietlenie Najszybsze rozwi zanie: Mateusz Radecki (3:18)
Rozwa»amy autostrad zªo»on z n 50 000 odcinków. W ka»dym kroku z prawdopodobie«stwem 1 p remontujemy pierwszy z jeszcze niewyremontowanych odcinków, z prawdopodobie«stwem p ostatni. Dla ka»dego odcinka chcemy wyznaczy oczekiwan liczb kroków, po której zostanie on wyremontowany. Omówienie zadania O±wietlenie
Niech P m,k oznacza prawdopodobie«stwo,»e w pierwszych m krokach dokªadnie k razy remontowali±my pierwszy z jeszcze niewyremontowanych odcinków. Zauwa»amy,»e P m,k = ( ) m k (1 p) k p m k. Liczby P m,k mo»emy te» wylicza rekurencyjnie. Omówienie zadania O±wietlenie
Niech P m,k oznacza prawdopodobie«stwo,»e w pierwszych m krokach dokªadnie k razy remontowali±my pierwszy z jeszcze niewyremontowanych odcinków. Zauwa»amy,»e P m,k = ( ) m k (1 p) k p m k. Liczby P m,k mo»emy te» wylicza rekurencyjnie. Maj c wszystkie P m,k mo»na ªatwo wyliczy wszystkie odpowiedzi w sumarycznym czasie O(n 2 ). Omówienie zadania O±wietlenie
Niech P m,k oznacza prawdopodobie«stwo,»e w pierwszych m krokach dokªadnie k razy remontowali±my pierwszy z jeszcze niewyremontowanych odcinków. Zauwa»amy,»e P m,k = ( ) m k (1 p) k p m k. Liczby P m,k mo»emy te» wylicza rekurencyjnie. Maj c wszystkie P m,k mo»na ªatwo wyliczy wszystkie odpowiedzi w sumarycznym czasie O(n 2 ). Mo»emy jednak zauwa»y,»e skoro oczekiwana dokªadno±c nie jest zbyt du»a, mo»na pomin niektóre P m,k. Intuicyjnie, dla ustalonego m, P m,k jest najwi ksze dla k m(1 p), gdy» jest to oczekiwana liczba remontów pierwszego odcinka. Omówienie zadania O±wietlenie
Niech P m,k oznacza prawdopodobie«stwo,»e w pierwszych m krokach dokªadnie k razy remontowali±my pierwszy z jeszcze niewyremontowanych odcinków. Zauwa»amy,»e P m,k = ( ) m k (1 p) k p m k. Liczby P m,k mo»emy te» wylicza rekurencyjnie. Maj c wszystkie P m,k mo»na ªatwo wyliczy wszystkie odpowiedzi w sumarycznym czasie O(n 2 ). Mo»emy jednak zauwa»y,»e skoro oczekiwana dokªadno±c nie jest zbyt du»a, mo»na pomin niektóre P m,k. Intuicyjnie, dla ustalonego m, P m,k jest najwi ksze dla k m(1 p), gdy» jest to oczekiwana liczba remontów pierwszego odcinka. Z nierówno±ci Chernoa mo»na pokaza,»e wystarczy rozwa»a P m,k dla k [k 5 m, k + 5 m]. Omówienie zadania O±wietlenie
Neony Najszybsze rozwi zanie: Jakub Tarnawski (4:08)
Mamy dane dwa napisy v 1, v 2. Chcemy znale¹ liczb podci gów v 1, które s równe v 2 i odlegªo± mi dzy pierwszym i ostatnim elementem tego podci gu jest wi ksza ni» pewne k. Omówienie zadania Neony
Mamy dane dwa napisy v 1, v 2. Chcemy znale¹ liczb podci gów v 1, które s równe v 2 i odlegªo± mi dzy pierwszym i ostatnim elementem tego podci gu jest wi ksza ni» pewne k. Przykªad v 1 = longlonghotel, v 2 = lol, k = 5 l o n g l o n g h o t e l odl l o l 4 (-) l o l 12 (+) l o l 12 (+) l o l 12 (+) l o l 8 (+) l o l 8 (+) Omówienie zadania Neony
Miast szuka liczby takich podci gów, gdzie odlegªo± jest wi ksza ni» pewne k, znajd¹my liczb podci gów, gdzie odlegªo± jest nie wi ksza ni» p. Oznaczaj c t liczb przez liczba(p), szukanym wynikiem jest liczba(n) liczba(k). Omówienie zadania Neony
Miast szuka liczby takich podci gów, gdzie odlegªo± jest wi ksza ni» pewne k, znajd¹my liczb podci gów, gdzie odlegªo± jest nie wi ksza ni» p. Oznaczaj c t liczb przez liczba(p), szukanym wynikiem jest liczba(n) liczba(k). Jak znale¹ warto± liczba(p)? Poruszamy si okienkiem o dªugo±ci p i trzymamy tablic d wielko±ci m m. d a,b oznacza liczb wyst pie«podci gów równych s[a..b] w aktualnym okienku. Warto±ci d a,b mo»na ªatwo aktualizowa w czasie O(m 2 ) musimy jedynie obsªugiwa dodanie jednej litery z prawej strony okienka i usuni cie jednej litery z lewej strony okienka. Omówienie zadania Neony
lol lol lol lol lol lol 1 0 0 0 0 1 l 1 1 1 0 0 1 lo... 1 1 1 0 0 1 longh 0 0 1 0 0 0 ongh... Omówienie zadania Neony
lol lol lol lol lol lol 1 0 0 0 0 1 l 1 1 1 0 0 1 lo... 1 1 1 0 0 1 longh 0 0 1 0 0 0 ongh... Zªo»ono± O(nm 2 ). Omówienie zadania Neony
lol lol lol lol lol lol 1 0 0 0 0 1 l 1 1 1 0 0 1 lo... 1 1 1 0 0 1 longh 0 0 1 0 0 0 ongh... Zªo»ono± O(nm 2 ). Inne dopuszczalne rozwi zanie u»ywaªo metody dziel i zwyci»aj i miaªo zªo»ono± O(nm 2 log n). Omówienie zadania Neony
lol lol lol lol lol lol 1 0 0 0 0 1 l 1 1 1 0 0 1 lo... 1 1 1 0 0 1 longh 0 0 1 0 0 0 ongh... Zªo»ono± O(nm 2 ). Inne dopuszczalne rozwi zanie u»ywaªo metody dziel i zwyci»aj i miaªo zªo»ono± O(nm 2 log n). Zªo»ono± O(nm 3 ) tak»e mogªa zosta zaakceptowana. Omówienie zadania Neony
Taniec
Danych jest n m»czyzn, m kobiet i t terminów. Ka»da osoba deklaruje, jak bardzo warto±ciowy jest dla niej ka»dy z terminów. Chcemy utworzy pewn liczb par, z których ma przydzielony termin. Ka»da osoba mo»e wchodzi w skªad co najwy»ej jednej pary, interesuje nas maksymalizacja sumarycznej warto±ci. Omówienie zadania Taniec
Interesuje nas najdro»sze skojarzenie w specycznym grae dwudzielnym. Poniewa» po ka»dej stronie mo»emy mie nawet 10 000 wierzchoªków, wi c nale»y jako± skorzysta ze struktury grafu. Zauwa»amy,»e t 10. Omówienie zadania Taniec
Interesuje nas najdro»sze skojarzenie w specycznym grae dwudzielnym. Poniewa» po ka»dej stronie mo»emy mie nawet 10 000 wierzchoªków, wi c nale»y jako± skorzysta ze struktury grafu. Zauwa»amy,»e t 10. Zamiast grafu dwudzielnego tworzymy sie skªadaj c si z trzech warstw: w pierwszej m»czy¹ni, w drugiej terminy, a w trzeciej kobiety. Dodajemy ¹ródªo (poª czone z ka»dym m»czyzn ) oraz uj±cie (poª czone z ka»d kobiet ) i ustalamy koszty oraz przepustowo±ci kraw dzi tak, aby rozwi zanie zadania sprowadzaªo si do wyliczenia maksymalnego przepªywu o minimalnym koszcie. Omówienie zadania Taniec
Interesuje nas najdro»sze skojarzenie w specycznym grae dwudzielnym. Poniewa» po ka»dej stronie mo»emy mie nawet 10 000 wierzchoªków, wi c nale»y jako± skorzysta ze struktury grafu. Zauwa»amy,»e t 10. Zamiast grafu dwudzielnego tworzymy sie skªadaj c si z trzech warstw: w pierwszej m»czy¹ni, w drugiej terminy, a w trzeciej kobiety. Dodajemy ¹ródªo (poª czone z ka»dym m»czyzn ) oraz uj±cie (poª czone z ka»d kobiet ) i ustalamy koszty oraz przepustowo±ci kraw dzi tak, aby rozwi zanie zadania sprowadzaªo si do wyliczenia maksymalnego przepªywu o minimalnym koszcie. Zauwa»amy,»e co drugi wierzchoªek na dowolnej ±cie»ce powi kszaj cej nale»y do ±rodkowej warstwy, wi c dªugo± takiej ±cie»ki to 2(t + 1). Omówienie zadania Taniec
Interesuje nas najdro»sze skojarzenie w specycznym grae dwudzielnym. Poniewa» po ka»dej stronie mo»emy mie nawet 10 000 wierzchoªków, wi c nale»y jako± skorzysta ze struktury grafu. Zauwa»amy,»e t 10. Zamiast grafu dwudzielnego tworzymy sie skªadaj c si z trzech warstw: w pierwszej m»czy¹ni, w drugiej terminy, a w trzeciej kobiety. Dodajemy ¹ródªo (poª czone z ka»dym m»czyzn ) oraz uj±cie (poª czone z ka»d kobiet ) i ustalamy koszty oraz przepustowo±ci kraw dzi tak, aby rozwi zanie zadania sprowadzaªo si do wyliczenia maksymalnego przepªywu o minimalnym koszcie. Zauwa»amy,»e co drugi wierzchoªek na dowolnej ±cie»ce powi kszaj cej nale»y do ±rodkowej warstwy, wi c dªugo± takiej ±cie»ki to 2(t + 1). Czyli mo»emy szuka kolejnych ±cie»ek Bellmanem-Fordem w sumarycznym czasie O(n 2 t). Omówienie zadania Taniec
Mo»emy te» szuka ±cie»ki powi kszaj cej w skompresowanej wersji sieci, w której zostawiamy tylko ±rodkow warstw. Je±li u oraz v s dwoma wierzchoªkami z tej ±rodkowej warstwy, a w sieci mamy kraw dzie u c 1 x oraz x c 2 v (o przepustowo±ci 1), to w skompresowanej sieci dodajemy kraw d¹ u c 1+c 2 v (te» o przepustowo±ci 1). Dla ka»dego (u, v) zostawiamy najta«sz z tak skonstruowanych kraw dzi. Omówienie zadania Taniec
Mo»emy te» szuka ±cie»ki powi kszaj cej w skompresowanej wersji sieci, w której zostawiamy tylko ±rodkow warstw. Je±li u oraz v s dwoma wierzchoªkami z tej ±rodkowej warstwy, a w sieci mamy kraw dzie u c 1 x oraz x c 2 v (o przepustowo±ci 1), to w skompresowanej sieci dodajemy kraw d¹ u c 1+c 2 v (te» o przepustowo±ci 1). Dla ka»dego (u, v) zostawiamy najta«sz z tak skonstruowanych kraw dzi. Kompresja zmniejsza czas znalezienie najta«szej ±cie»ki powi kszaj cej do O(t 3 ), ale skonstruowanie skompresowanej sieci wymaga przejrzenia 2n t par kraw dzi. Omówienie zadania Taniec
Mo»emy te» szuka ±cie»ki powi kszaj cej w skompresowanej wersji sieci, w której zostawiamy tylko ±rodkow warstw. Je±li u oraz v s dwoma wierzchoªkami z tej ±rodkowej warstwy, a w sieci mamy kraw dzie u c 1 x oraz x c 2 v (o przepustowo±ci 1), to w skompresowanej sieci dodajemy kraw d¹ u c 1+c 2 v (te» o przepustowo±ci 1). Dla ka»dego (u, v) zostawiamy najta«sz z tak skonstruowanych kraw dzi. Kompresja zmniejsza czas znalezienie najta«szej ±cie»ki powi kszaj cej do O(t 3 ), ale skonstruowanie skompresowanej sieci wymaga przejrzenia 2n t par kraw dzi. Zamiast kompresowa za ka»dym razem od pocz tku, lepiej utrzymywa skompresowan wersj. W tym celu dla ka»dego (u, v) przechowujemy zbiór kandydatów, z którego w ka»dej iteracji wyci gamy najta«szego. Nast pnie szukamy najta«szej ±cie»ki w skompresowanej sieci. Po znalezieniu kolejnej ±cie»ki powi kszaj cej musimy zmieni co najwy»ej 2t 3 kandydatów. Omówienie zadania Taniec
Mo»emy te» szuka ±cie»ki powi kszaj cej w skompresowanej wersji sieci, w której zostawiamy tylko ±rodkow warstw. Je±li u oraz v s dwoma wierzchoªkami z tej ±rodkowej warstwy, a w sieci mamy kraw dzie u c 1 x oraz x c 2 v (o przepustowo±ci 1), to w skompresowanej sieci dodajemy kraw d¹ u c 1+c 2 v (te» o przepustowo±ci 1). Dla ka»dego (u, v) zostawiamy najta«sz z tak skonstruowanych kraw dzi. Kompresja zmniejsza czas znalezienie najta«szej ±cie»ki powi kszaj cej do O(t 3 ), ale skonstruowanie skompresowanej sieci wymaga przejrzenia 2n t par kraw dzi. Zamiast kompresowa za ka»dym razem od pocz tku, lepiej utrzymywa skompresowan wersj. W tym celu dla ka»dego (u, v) przechowujemy zbiór kandydatów, z którego w ka»dej iteracji wyci gamy najta«szego. Nast pnie szukamy najta«szej ±cie»ki w skompresowanej sieci. Po znalezieniu kolejnej ±cie»ki powi kszaj cej musimy zmieni co najwy»ej 2t 3 kandydatów. Takie rozwi zanie dziaªa w czasie O(nt 2 (t + log n)). Omówienie zadania Taniec
Edycja
Dane 2 sªowa v, w tej samej dªugo±ci. Jak zamieni v na w w najkrótszym czasie, je±li: zamiana konkretnej litery x na y zajmuje 1 sekund, zamiana wszystkich liter x na y zajmuje c sekund? Omówienie zadania Edycja
Šatwo zauwa»y,»e operacje typu (1) mo»na zostawi na sam koniec. Rozwi zanie niepoprawne: Dla ka»dej pary liter x, z liczymy koszt zamiany r xz, czyli ile czasu zajmie poprawienie wszystkich liter x na z, o ile dokonamy zamiany x z (lub nie dokonamy»adnej zamiany x, dla x = z). Koszt zamiany x z jest wliczony w r xz. Dla ka»dej litery x znajdujemy b(x), czyli takie y, dla którego r xy jest najmniejsze. Sumujemy r x,b(x) po wszystkich literach. Niepoprawne, bo: Cykle: potrzebujemy dodatkowej tymczasowej litery (koszt ro±nie o c) Permutacja: Je±li b jest permutacj i nie jest identyczno±ci, to tymczasowej litery nie ma. (zupeªnie niepoprawne) Omówienie zadania Edycja
Za ka»dy cykl w rozwi zaniu musimy wi c zapªaci dodatkowo c. By unikn wzrostu kosztu o c, musimy cykl rozbi : Dla pewnego x na cyklu, zamieni x na z(x) b(x) Dla pewnego x, zamieni x na z(x) le» ce na cyklu Ka»da zamiana x na z(x) b(x) podwy»sza koszt o r x,z(x) r x,b(x) 0. Nie musimy si przejmowa mo»liwo±ci stworzenia nowych cykli, ani tym,»e funkcja si mo»e sta permutacj, bo to by wymagaªo niepotrzebnego podwy»szenia kosztu. Omówienie zadania Edycja
Funkcja rekurencyjna dp(u, x, i) (spami tywane wyniki) U reprezentuje zbiór cykli, które musimy jeszcze rozbi x przechodzi po wszystkich literach i mówi nam, czy trzeba rozbi permutacj Dla x = 26 zwracamy c U o ile i = 0 ( w przeciwnym przypadku). Dla x < 26 próbujemy zamieni x na wszystkie mo»liwe litery z i zwracamy najmniejsze r x,z + dp(u (x,z), x + 1, i (z b(x))) gdzie U (x,z) = U minus cykle rozbite przez x z Zªo»ono± czasowa: O(2 r n 2 ), gdzie n liczba liter (26), r liczba cykli (n/2 = 13) Omówienie zadania Edycja