Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Przechdzk Bjtusi - omówienie zdni Komisj Regulminow XVI Olimpidy Informtycznej 1 UMK Toruń 11 luty 2009 1 Niniejsz prezentcj zwier mteriły dostrczone przez Komitet Główny Olimpidy Informtycznej. Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Treść zdni Wejście Wyjście Przykłd Bjtuś jest jednym z njmłodszych mieszkńców Bjtogrodu. Dopiero niedwno nuczył się pisć i czytć. Jest jednk n tyle duży, że sm już chodzi do szkoły. Codziennie rno wychodzi z domu, nstępnie wstępuje po kolei do wszystkich swoich kolegów; dopiero po dołączeniu się osttniego kolegi cł grup idzie n lekcje. Pewnego dni nuczyciel Bjtusi poprosił go o sporządzenie listy ulic, którymi Bjtuś przechodzi po drodze z domu do szkoły, i odczytnie tej listy n nstępnych zjęcich. Szyko jednk okzło się, że tk list mogły pochłonąć ogromne ilości ppieru. Ustlono więc, że Bjtuś zpisze jedynie pierwszą literę z nzwy kżdej ulicy, po której przejdzie. Kżd ulic w Bjtogrodzie jest jednokierunkow i łączy dw różne skrzyżowni. Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Treść zdni Wejście Wyjście Przykłd Bjtuś podczs odczytywni opisu trsy roi przerwy jedynie w miejscch, w których wstępowł do kolegów. Możemy więc trktowć opis kżdego frgmentu jego drogi z domu do szkoły jko jedno słowo. Chłopiec wciąż m prolemy z prwidłowym czytniem, tj. czytniem od lewej strony do prwej, i zmist tego zdrz mu się czytć od strony prwej do lewej. Czsem przeczyt wyrz mleko jko mleko, czsem jko okelm. Rodzice Bjtusi wiedzą o tych prolemch syn, więc postnowili mu pomóc i znleźć tką trsę, y opis kżdego frgmentu, niezleżnie od tego, z której strony czytny, rzmił tk smo. Jednocześnie chcieliy, żey długość kżdego kwłk tej trsy ył jk n jmniejsz. Zwrócili się do Cieie z prośą o pomoc. Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Treść zdni Wejście Wyjście Przykłd Npisz progrm, który: wczyt ze stndrdowego wejści opis mist, wyznczy tką trsę z domu do szkoły, w której kżdy frgment jest możliwie njkrótszy, jego opis, niezleżnie od kierunku czytni, rzmi dokłdnie tk smo, wypisze wyznczone opisy frgmentów drogi n stndrdowe wyjście. Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Treść zdni Wejście Wyjście Przykłd Pierwszy wiersz wejści zwier dwie liczy cłkowite n i m oddzielone po jedynczym odstępem (2 n 400, 1 m 60000). Ozncz ją one odpowiednio liczę skrzyżowń w Bjtogrodzie orz liczę łączących je ulic. W kolejnych m wierszch znjdują się opisy ulic. W wierszu (i + 1)-szym znjdują się trzy wrtości x i, y i, c i (1 x i n, 1 y i n, x i y i ), pooddzielne po jedynczymi odstępmi i ozncz jące odpowiednio początek ulicy, koniec ulicy orz pierwszą literę jej nzwy w postci młej litery lfetu ngielskiego. Między dowolnymi dwom skrzyżownimi istnieje mksymlnie jedn ulic w dnym kierunku. Kolejny wiersz zwier jedną liczę cłkowitą d (2 d 100), oznczjącą liczę skrzyżowń, pomiędzy którymi idzie Bjtuś w drodze do szkoły. Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Treść zdni Wejście Wyjście Przykłd Nstępny wiersz zwier d licz cłkowitych s i (1 s i n), pooddzielnych po jedynczymi odstępmi. Ozncz ją one, że Bjtuś mieszk przy skrzyżowniu numer s 1, szkoł znjduje się przy skrzyżowniu s n, zś po drodze Bjtuś idzie kolejno po kolegów mieszkjących przy skrzyżownich s 2, s 3,..., s n 1. Kżde dw nstępujące po soie numery skrzyżowń n liście są różne. Może się jednk zdrzyć, że pewne numery skrzyżowń n liście ędą tkie sme. Pondto, jeśli pomiędzy dwom kolejnymi skrzyżownimi nie d się przejść, stosując się do ogrniczeń podnych w zdniu, to Bjtuś idzie n przełj i niczego nie zpisuje n krtce. Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Treść zdni Wejście Wyjście Przykłd Wyjście powinno skłdć się z d 1 wierszy. W i-tym wierszu powinn znjdowć się licz r i orz ciąg znków w i, oddzielone pojedynczym odstępem. Licz r i ozncz długość njkrótszej drogi, spełnijącej wymogi zdni, łączącej skrzyżowni s i orz s i + 1, zś w i to ciąg pierwszych liter nzw ulic n tej drodze. W przypdku gdy pomiędzy dnymi dwom skrzyżownimi nie istnieje trs spełni jąc wrunki zdni, nleży wypisć 1. Jeśli zś istnieje kilk możliwych ciągów znków wi zgodnych z wrunkmi zdni, nleży wypisć dowolny z nich. Przechdzk Bjtusi - omówienie zdni
Przykłd Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Treść zdni Wejście Wyjście Przykłd Dl dnych wejściowych: 6 7 1 2 1 3 x 1 4 2 6 l 3 5 y 4 5 z 6 5 3 1 5 3 poprwnym wynikiem jest: 3 l -1 2 l 6 5 z 4 y x 1 3 Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Koncepcj Orzki Złożoność Usprwnieni Przedstwiony prolem m oczywiście chrkter grfowy. Nleży znjdowć njkrótsze ścieżki między zdnymi wierzchołkmi, z tym jednk wrunkiem, że ich etykiety muszą tworzyć plindrom. Poptrzmy n przykłdowy grf i złóżmy, że Bjtuś m z zdnie przejść z wierzchołk 1 do 5. 1 2 3 c 4 5 Możn to zroić n dw sposoy 1 3 2 5 lu 1 3 4 5 Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Koncepcj Orzki Złożoność Usprwnieni Zuwżmy, że odpowiednich ścieżek możemy szukć od dwóch stron nrz. Jeśli z wierzchołk początkowego wyszliśmy etykietą to widomo, że do wierzchołk końcowego musimy też wejść etykietą. Możn ztem udowć ścieżki z jednej i drugiej strony, jeśli gdzieś tkie dwie ścieżki się przetną, wiemy że dostliśmy drogę której etykiety stnowią plindrom. Okzuje się, że lepiej prolem odroinę przeformułowć tk y sprowdził się do szukni zwykłych ścieżek w nieco innym grfie. Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Koncepcj Orzki Złożoność Usprwnieni Określimy nowy grf G dl wejściowego grfu G w nstępujący sposó: Ziór wierzchołków grfu G równ się ziorowi pr wierzchołków G W G istnieje krwędź ( 1, 1 ) ( 2, 2 ) jesli w grfie G istnieją krwędzie 1 2 orz 2 1 Ścieżk ( 1, 1 ) ( 2, 2 )... ( n, n ) odpowid sytucji w której początek wędrówki Bjtusi przeieg po wierzchołkch 1, 2,..., n, koniec po n, n 1,..., 1 orz pierwszych n 1 liter równ się osttnim n 1 literom Trs którą możn opisć plindromem przystej długości m postć (p, k) ( 2, 2 )... (i, i) dl pewnego i. Trs którą możn opisć plindromem nieprzystej długości m postć (p, k) ( 2, 2 )... (i, j) orz wierzchołki i orz j są połączone krwędzią w grfie G Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Koncepcj Orzki Złożoność Usprwnieni Wierzchołki postci (i, i) orz (i, j) jk powyżej ędziemy nzywć końcowymi Prolem terz sprowdz się do znlezieni dl dnego początku i końc trsy (p, k) ścieżki w grfie G prowdzącej do njliższego wierzchołk końcowego Dl grfu G 1 2 3 c 4 5 grf G ędzie mił postć: Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Koncepcj Orzki Złożoność Usprwnieni 1,1 1,2 1,3 1,4 1,5 c 2,1 2,2 2,3 2,4 2,5 3,1 3,2 3,3 3,4 3,5 4,1 c 4,2 4,3 4,4 4,5 1 2 3 c 5,1 5,2 5,3 5,4 5,5 4 5 Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Koncepcj Orzki Złożoność Usprwnieni 1,1 1,2 1,3 1,4 1,5 c 2,1 2,2 2,3 2,4 2,5 3,1 3,2 3,3 3,4 3,5 4,1 c 4,2 4,3 4,4 4,5 1 2 3 c 5,1 5,2 5,3 5,4 5,5 4 5 Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Koncepcj Orzki Złożoność Usprwnieni Do przeszukiwni grfu G możn użyć zwykłego BFS. Ay ocenić złożoność, musimy oszcowć rozmir grfu G. M on n 2 wierzchołków (wszystkie pry n wierzchołków grfu G). Z kżdej pry krwędzi o tych smych etykietch w G powstje jedn krwędź w G. Poniewż dl kżdego frgmentu podróży Bjtusi musimy wykonć od now przeszukiwnie grfu, to w pesymistycznym przypdku, gdy wszystkie krwędzie mją tką smą etykietę, złożoność czsow tego lgorytmu to O(d(n 2 +m 2 )), zś pmięciow to O(n 2 + m 2 ). Dl dnych o mksymlnych rozmirch to zdecydownie zyt wolno. Jego koncepcj jest jednk słuszn, pozostje jedynie dokonć pewnych usprwnień. Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Koncepcj Orzki Złożoność Usprwnieni N początku zuwżmy, że kżde uruchomienie lgorytmu dl dnego grfu jest podone - szukmy njkrótszej trsy z pewnego wierzchołk do njliższego wierzchołk końcowego. Ziór wierzchołków końcowych jest jednk z kżdym rzem tki sm. Możn ztem: Odwrócić krwędzie w G i rozpocząć wyszukiwnie z wierzchołków końcowych W kżdym wierzchołku zpisć dne njliższego wierzchołk końcowego orz dne potrzene do odtworzeni njkrótszej drogi Tkie rozwiąznie dził w złożoności czsowej O(dn 2 +m 2 ). Wynik to z fktu, iż d rzy zwrcmy ścieżkę w grfie o n 2 wierzchołkch (ścieżk może yć pesymistycznie tego smego rzędu co ilość wierzchołków grfu). Pondto musimy wygenerowć grf G co kosztuje m 2. Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Rozwiąznie wzorcowe Rozwiąznie wzorcowe opier się n powyższych pomysłch le implementuje je nieco efektywniej. Zuwżmy, że w grfie G przejście po jednej krwędzi odpowid dwóm krokom w grfie G Jest zskkujące, że rozwiąznie ędzie szysze o ile te kroki ędziemy wykonywć osono (sztuczkę tą wykorzystno w rozwiązniu zdni Agenci z VII Olimpidy Informtycznej) Skonstruujmy grf G który ędzie modelowć tkie podejście: Wierzchołkmi G są trójki (u, v, c) gdzie u i v są wierzchołkmi grfu G, zś c {,,..., z, #} Trójk (u, v, #) odpowid wierzchołkowi (u, v) grfu G, to znczy sytucji w której mmy znleziony początek i koniec plindromu o równej długości Trójk (u, v, c) dl c {,,..., z} ozncz sytucję, w której początkowy frgment znlezionego plindromu jest o jeden znk dłuższy od frgmentu końcowego i tym znkiem jest c Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Rozwiąznie wzorcowe Z wierzchołków postci (u, v, #) wychodzą krwędzie do (u, v, c) dl tkich u i c, że w G jest krwędź z u do u o etykiecie c Z wierzchołków postci (u, v, c) możemy pójść do (u, v, #), jeśli w G jest krwędź z v do v o etykiecie c Jeśli przez Σ ooznczymy rozmir lfetu to tk skonstruowny grf ędzie mił O(Σn 2 ) wierzchołków orz O(mn) krwędzi. Po zstosowniu wszystkich usprwnień otzrymujemy progrm wzorcowy, który dził w czsie O((Σ + d)n 2 + mn) i pmięci O(Σn 2 ). Dl rozwżnego wcześniej grfu G, grf G wygląd nstępująco: Przechdzk Bjtusi - omówienie zdni
Wprowdzenie Rozwiąznie Rozwiąznie wzorcowe Rozwiąznie wzorcowe 1,1, 1,2, 1,3, 1,4, 1,5, 1,1, 1,2, 1,3, 1,4, 1,5, 2,1, 2,2, 2,3, 2,4, 2,5, 2,1, 2,2, 2,3, 2,4, 2,5, 3,1, 3,2, 3,3, 3,4, 3,5, 3,1, 3,2, 3,3, 3,4, 3,5, 4,1, 4,2, 4,3, 4,4, 4,5, 4,1, 4,2, 4,3, 4,4, 4,5, 5,1, 5,2, 5,3, 5,4, 5,5, 5,1, 5,2, 5,3, 5,4, 5,5, 1,1,c 1,2,c 1,3,c 1,4,c 1,5,c 1,1,# 1,2,# 1,3,# 1,4,# 1,5,# 2,1,c 2,2,c 2,3,c 2,4,c 2,5,c 2,1,# 2,2,# 2,3,# 2,4,# 2,5,# 3,1,c 3,2,c 3,3,c 3,4,c 3,5,c 3,1,# 3,2,# 3,3,# 3,4,# 3,5,# 4,1,c 4,2,c 4,3,c 4,4,c 4,5,c 4,1,# 4,2,# 4,3,# 4,4,# 4,5,# 5,1,c 5,2,c 5,3,c 5,4,c 5,5,c 5,1,# 5,2,# 5,3,# 5,4,# 5,5,# Przechdzk Bjtusi - omówienie zdni