|
Informatyka UJ forum Rocznik 2005 - czyli najlepsze forum w sieci
|
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
|
Wysł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 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
|
Wysł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 poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysł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 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 :]
|
Wysł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 poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysł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 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
|
Wysł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 poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysł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 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 :]
|
Wysł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 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
|
Wysł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 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?
|
Wysł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 poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysł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 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
|
Wysł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 poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysł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 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
|
Wysł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 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
|
Wysł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 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
|
Wysł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 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
|
Wysłany: Czw 1:28, 23 Lis 2006 Temat postu: |
|
|
Szkoda ci setnych punkta ? ;]
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysł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 |
|
|
|
|
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
|