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 

Zadanie O - Żółwie
Idź do strony Poprzedni  1, 2
 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Algorytmy i Struktury Danych
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: Śro 1:06, 22 Lis 2006    Temat postu:

TLE można wyeliminować przez binsearcha, który znajduje najwyższą wieżę, która wymaga aktualizacji (choć złożoności asymptotycznej nie poprawia :P ). Piszę o tym, bo już kilka osób mnie o to pytało.
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: Śro 11:08, 22 Lis 2006    Temat postu:

Spectro napisał:
TLE można wyeliminować przez binsearcha, który znajduje najwyższą wieżę, która wymaga aktualizacji (choć złożoności asymptotycznej nie poprawia :P ). Piszę o tym, bo już kilka osób mnie o to pytało.
zanim ktos bedzie binsearcha robil polecam spojrzec na forum tcsu
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Śro 11:35, 22 Lis 2006    Temat postu:

Spectro napisał:
TLE można wyeliminować przez binsearcha, który znajduje najwyższą wieżę, która wymaga aktualizacji (choć złożoności asymptotycznej nie poprawia :P ). Piszę o tym, bo już kilka osób mnie o to pytało.

a możesz mi wytłumaczyć w jaki sposób binsearch pomoże? bo i tak musisz liniowo przejść do tego miejsca w tablicy i zaktualizować dane, więc lepiej to obsłużyć w warunku pętli ;]
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Madras
Omylny Admin



Dołączył: 09 Lis 2005
Posty: 2021
Przeczytał: 0 tematów

Skąd: Z Pokoju :]

PostWysłany: Śro 14:07, 22 Lis 2006    Temat postu:

Ale jeśli musisz zaktualizować tylko dane oznaczone iksem:

XXXXXXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

To binsearch oszczędza sporo czasu. Jak napisal Jasko na forum TCSu, asymptotycznej to nie poprawia, ale czasem robi różnicę.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Śro 14:12, 22 Lis 2006    Temat postu:

wrrr...
nie robiłem jeszcze tego zadania, nie wiem, jaki tam ma być dokładnie warunek, ale zakładam, że dopóki masa żółwia nie jest większa niż wytrzymałość wieży, więc:
Kod:
int i=0;
while((i<n)&&(masa_zolwia<=tab[i])) {
    aktualizuj();
    ++i;
}


w takim razie po co binsearch? bo dalej nie widzę ;]
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Skrobocik
[SKROBORANGA]



Dołączył: 29 Lis 2005
Posty: 2958
Przeczytał: 0 tematów

Skąd: Skarżysko , Kraków

PostWysłany: Śro 14:29, 22 Lis 2006    Temat postu:

Jagmusiu, ten binsearch to jest do wersji odwrotnej do Twojej, że zaczynamy od najmniejszych żółwi, a potem dokładamy od spodu ;)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Śro 14:36, 22 Lis 2006    Temat postu:

mhm. jak tak, to ok ;] ale skoro mamy jakiś warunek w binsearchu, to i tak pewnie jakoś by się go dało obsłużyć przy while'u :P
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Madras
Omylny Admin



Dołączył: 09 Lis 2005
Posty: 2021
Przeczytał: 0 tematów

Skąd: Z Pokoju :]

PostWysłany: Śro 14:53, 22 Lis 2006    Temat postu:

Ale w tej odwrotnej wersji też się da iść od lewej do prawej, Jagm ma rację. Trzeba tylko pamiętać poprzednie tab[i].
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Skrobocik
[SKROBORANGA]



Dołączył: 29 Lis 2005
Posty: 2958
Przeczytał: 0 tematów

Skąd: Skarżysko , Kraków

PostWysłany: Śro 15:34, 22 Lis 2006    Temat postu:

Nie wiem, po prostu nie zagłębiałem się w sposób rozwiązania z dokładaniem na górze i tak mi się pomyślało, że skoro Jagm robi tym sposobem i nie widzi miejsca na bina, to pewnie nie ma ;)
Wiem - faceci uogólniają ;p
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kg86
zielony żul



Dołączył: 22 Gru 2005
Posty: 1194
Przeczytał: 0 tematów

Skąd: pochodze?

PostWysłany: Śro 15:35, 22 Lis 2006    Temat postu:

skodowalem to tak, jak pisal Jasko na forum TCS'u, bez zadnych usprawnien i binsearch'ow i zielone OK pojawilo sie bardzo szybko :)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Śro 15:47, 22 Lis 2006    Temat postu:

no dobra, już widzę sens stosowania binsearcha ;] zapomniałem, że fajniej się idzie od drugiej strony po wieżach, bo od lewej jest dużo zabawy z tmpami ;] ale i tak przechodzi :P
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
liffe
pijak



Dołączył: 16 Paź 2006
Posty: 78
Przeczytał: 0 tematów

Skąd: z daleka

PostWysłany: Śro 23:19, 22 Lis 2006    Temat postu:

mam problem.
chodzi, ale źle. Wiem, gdzie mam problem, ale nie wiem jak się go poprawia. Otóż, śledzimy działanie programu na przykładowym teście:
5
1 2
3 4
5 6
7 1
2 3
Idziemy od góry:
1 krok: tab[1]=WagaZolwia[1];
2 krok: tab[2]=tab[1]+WagaZolwia[2];
3 krok: tab[3]=tab[2]+WagaZolwia[3];
4 krok: stwierdzamy, że wytrzymałość żółwia jest zamała, a waga za duża, by coś sensownego z nim zrobić.
5 krok: tab[2]=tab[1]+WagaZolwia[5]; i tyle.. bo pod żadną większą wieżą on się nie zmieści, a mniejszej nie zaktualizuje;

Takim oto sposobem otrzymujemy wysokość wieży 3, mimo że miałaby być 4. Gdzie mam błąd? help! 100 minut zostało. Chcę zdążyć
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Śro 23:28, 22 Lis 2006    Temat postu:

bo tab[2] nie musi się równać tab[1]-zolw1
dla kazdego zolwia przechodzisz przez cala tablice tab, czyli moze sie okazac, ze zolw nr 3 jest lepszy na pozycji tab[1] niz zolw nr 1, ktorego tam wstawiles.
czyli inaczej mowiac: bierzesz zolwia i sprawdzasz, od tab[1] az do konca (albo dopóki tab[i]-zolw >=0) czy nie poprawisz wytrzymalosci wiezy dodajac go na sama gore
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
liffe
pijak



Dołączył: 16 Paź 2006
Posty: 78
Przeczytał: 0 tematów

Skąd: z daleka

PostWysłany: Śro 23:51, 22 Lis 2006    Temat postu:

w tym momencie już się zgubiłem. Może, nie dopisałem do końca, co robię w kolejnym kroku. Najpierw szukam binSearchem najwyższej wieży, którą można postawić na danym żółwiu. Od tej wieży idąc do dołu sprawdzamy czy jeśli podstawimy pod nią tego żółwia, to nam się o 1 większa wieża się nie polepszy. Jeśli się polepszy, to polepszamy ją. A jak tutaj być takim wrednym żółwiem (krok 5ty), który miałby być gdzieś u góry wieży?
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
nathaniel
pijak



Dołączył: 25 Paź 2005
Posty: 229
Przeczytał: 0 tematów

Skąd: Bielsko-Biała

PostWysłany: Czw 1:02, 23 Lis 2006    Temat postu:

liffe napisał:
help! 100 minut zostało. Chcę zdążyć

Albo ja zle widze, albo mowisz o innym zadaniu.
Kod:
Zadanie O - Żółwie
Termin: 29 XI 2006 23:59:59
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
liffe
pijak



Dołączył: 16 Paź 2006
Posty: 78
Przeczytał: 0 tematów

Skąd: z daleka

PostWysłany: Czw 1:06, 23 Lis 2006    Temat postu:

o, kurczę... zwykle patrzę na termin tylko jeden raz... teraz też tak... No to jeszcze mam szansę :)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kafex
zielony żul



Dołączył: 28 Mar 2006
Posty: 1458
Przeczytał: 0 tematów

Skąd: Zawiercie

PostWysłany: Czw 1:28, 23 Lis 2006    Temat postu:

Szkoda ci setnych punkta ? ;]
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Czw 11:38, 23 Lis 2006    Temat postu:

liffe napisał:
w tym momencie już się zgubiłem. Może, nie dopisałem do końca, co robię w kolejnym kroku. Najpierw szukam binSearchem najwyższej wieży, którą można postawić na danym żółwiu. Od tej wieży idąc do dołu sprawdzamy czy jeśli podstawimy pod nią tego żółwia, to nam się o 1 większa wieża się nie polepszy. Jeśli się polepszy, to polepszamy ją. A jak tutaj być takim wrednym żółwiem (krok 5ty), który miałby być gdzieś u góry wieży?

ok, źle zrozumiałem ;]
sortujesz żółwie po sumie krawędzi, czyli otrzymujesz: 1 2 / 2 3 / 3 4 / 7 1 / 5 6
krok 1: tab[1]=1
krok 2: tab[2]=3
krok 3: tab[3]=6
krok 4: nic ;]
krok 5: tab[4]=11 (bo żółw piąty ma udźwig 6, czyli może unieść całą wieżę)
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 -> Archiwum / 1 rok / 2 i 3 semestr - Algorytmy i Struktury Danych Wszystkie czasy w strefie EET (Europa)
Idź do strony Poprzedni  1, 2
Strona 2 z 2

 
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