Forum Informatyka UJ forum Strona Główna Informatyka UJ forum
Rocznik 2005 - czyli najlepsze forum w sieci
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

ASD

 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Informatyka
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Fidel
żul



Dołączył: 19 Lis 2005
Posty: 649
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Pią 13:43, 07 Lis 2008    Temat postu: ASD

Moze ktos z algorytmikow ma chec wymyslic jak zrobic zadanka alla ASD :>

Kod:
TEMAT
W odległym państwie, pewna partia postanowiła w ramach antyrządowego protestu zablokować najważniejsze drogi w państwie. Przewodniczący partii - Andrew L. - wyznaczył wstępny plan, dróg, na których powinny powstać blokady, jak również mianował w każdym mieście przewodniczącego lokalnego oddziału partii. Każdy oddział lokalny miał czuwać nad stanem blokady wszystkich dróg wjazdowych/wyjazdowych z miasta.

Andrew L. ustalił również następujące zasady strajku: "Jeśli zadzwonię do któregoś z lokalnych przewodniczących, wtedy on będzie musiał <<puścić sygnał>> każdemu z szefów blokad, którzy kontrolują ruch na drodze łączącej miasto z sąsiednimi. Szef blokady, jeśli dostanie sygnał tylko od jednego przewodniczącego, zobowiązany będzie do zmiany stanu blokady - tzn. jeśli droga była zablokowana, ma ją odblokować; jeśli odblokowana - zablokować. Jeśli otrzyma dwa sygnały lub nie otrzyma sygnału wcale - ma pozostawać w gotowości, ale stanu drogi nie zmieniać."

Andrew L. objął osobiście przewodnictwo w stolicy - i ze względu na swoją pozycję, nie zamierza kontaktować się z działaczami terenowymi na drogach wlotowych do stolicy.

Czy Andrew L. jest w stanie zablokować cały kraj kontaktując się wyłącznie z lokalnymi przewodniczącymi partii? Jakie telefony musi Andrew L. wykonać (zgodnie z kolejnością w spisie kontaktów), aby wszystkie drogi w kraju zostały zablokowane ?


WEJŚCIE
W pierwszej linii wejścia znajduje się liczba całkowita z — liczba zestawów danych (liczba wariantów strajku, które obejmują różną powierzchnię kraju). W kolejnych liniach znajdują się zestawy (warianty), z których każdy jest następującej postaci: pierwsza linia zestawu zawiera dwie liczby naturalne n i m (2<=n<=50000, 1<=m<=500000), oznaczające odpowiednio liczbę miast oraz liczbę wszystkich dróg. W dalszych m liniach znajdują się po dwie liczby naturalne ai, bi (1<=ai, bi<=n) — numery miast, które łączy i-ta droga oraz jeden znak + lub - oznaczający odpowiednio początkowy stan: obecność blokady lub jej brak. Miasto o numerze 1 to stolica kraju, w której zarządza osobiście Andrew L.
Żadna droga nie łączy miasta z samym sobą. Droga jest blokowana zawsze dla ruchu w obydwu kierunkach. Pomiędzy dwoma miastami może być tylko i wyłącznie jedna droga dojazdowa. Z każdego miasta można dojechać do dowolnego innego.


WYJŚCIE
Dla każdego zestawu należy wypisać jedno słowo NIE, jeśli niezależnie od kolejności wykonanych telefonów, Andrew L. nie uda się zablokować wszystkich dróg w kraju lub ciąg liczb oddzielonych spacjami — kolejne pozycje na liście telefonów, na które Andrew L. musi zadzwonić, aby osiągnąć swój cel. Numery należy wypisać w porządku rosnącym, liczba
1 (czyli telefon samego przewodniczącego) nie może się wśród nich pojawić.


PRZYKŁAD
Przykładowe wejście
1
4 4
1 2 -
2 3 +
3 4 -
4 1 +


Przykładowe wyjście
2 3
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Spectro
Mistrz grilla



Dołączył: 09 Mar 2006
Posty: 2306
Przeczytał: 0 tematów

Skąd: Kurdwanów

PostWysłany: Pią 14:42, 07 Lis 2008    Temat postu: Re: ASD

To jest dokładnie to zadanie:
[link widoczny dla zalogowanych]

Rozwiązanie to zwykły DFS z miasta 1, który przy przeglądaniu kolejnych krawędzi sprawdza, czy jest na niej blokada bądź nie. Jeśli nie ma - oznacza wierzchołek, do którego wchodzimy naszą krawędzią, że został zmieniony i faktycznie zmieniamy stan sąsiadujących z nim ulic. Po DFSie sprawdzamy, czy każda ulica jest zablokowana i jeżeli tak, to wypisujemy oznaczone wierzchołki.


Ostatnio zmieniony przez Spectro dnia Pią 14:43, 07 Lis 2008, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Fidel
żul



Dołączył: 19 Lis 2005
Posty: 649
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Pią 15:12, 07 Lis 2008    Temat postu:

dzieki ;]
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Informatyka Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin