|
Informatyka UJ forum Rocznik 2005 - czyli najlepsze forum w sieci
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
exeman
Mistrz grilla
Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów
Skąd: znienacka
|
Wysłany: Nie 23:22, 26 Mar 2006 Temat postu: J* - Punkty |
|
|
[link widoczny dla zalogowanych]
Co o tym myslicie? Ja tu widze jakies grafy :P
|
|
Powrót do góry |
|
|
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
hansu
Nieomylny Admin
Dołączył: 17 Lis 2005
Posty: 1990
Przeczytał: 0 tematów
Skąd: przychodzimy? Czym jestesmy? Dokad zmierzamy?
|
Wysłany: Nie 23:40, 26 Mar 2006 Temat postu: |
|
|
Zwyczajne zadanie na divide and conquer... Troche sie trzeba bedzie pomeczyc nad 3 krokiem ale tak to rekurencja zalatwi sprawe... (chyba bo jeszcze nie myslalem nad tym zadaniem szczegolnie)
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
exeman
Mistrz grilla
Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów
Skąd: znienacka
|
Wysłany: Nie 23:43, 26 Mar 2006 Temat postu: |
|
|
hansu: mysle, ze tym sposobem bedzie TLE.
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
mateo
pijak
Dołączył: 08 Mar 2006
Posty: 296
Przeczytał: 0 tematów
Skąd: Krk - Biały Prądnik
|
Wysłany: Nie 23:52, 26 Mar 2006 Temat postu: |
|
|
exeman napisał: | hansu: mysle, ze tym sposobem bedzie TLE. |
A czemu niby uwazasz ze rekurencja nie przejdzie?? mozna o oczywiscie napisac bez rekurencji ale rekurencyjnie jest znacznie wygodniej, a ja jakos nie widze tego zeby to mialo byc jakos znacznie wolniejsze.
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
exeman
Mistrz grilla
Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów
Skąd: znienacka
|
Wysłany: Nie 23:57, 26 Mar 2006 Temat postu: |
|
|
Mateo: nie chodzilo mi o sama rekurencje, ale o sama idee wyszukiwania binarnego. Wydaje mi sie, ze poprostu nie tedy droga.
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Robson
zielony żul
Dołączył: 21 Paź 2005
Posty: 1274
Przeczytał: 0 tematów
Skąd: Z Lasu :]
|
Wysłany: Pon 0:49, 27 Mar 2006 Temat postu: |
|
|
Chyba was zmartwie, ale ta gwiazdka nie jest przypadkowa w tym zadaniu. I wydaje mi sie że może to zadanie byc bardziej upierdliwe niz takie A naprzykład, bo jesli sie nie mylę to jest to książkowy przykład na algorytm zamiatania, gdzie trzeba użyć zrównoważonego drzewa, np AVL. I stad sie chyba bierze jego gwiazdka...
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
mateo
pijak
Dołączył: 08 Mar 2006
Posty: 296
Przeczytał: 0 tematów
Skąd: Krk - Biały Prądnik
|
Wysłany: Pon 1:06, 27 Mar 2006 Temat postu: |
|
|
Robson napisał: | wydaje mi sie że może to zadanie byc bardziej upierdliwe niz takie A naprzykład, bo jesli sie nie mylę to jest to książkowy przykład na algorytm zamiatania, gdzie trzeba użyć zrównoważonego drzewa, np AVL. |
Ale wy sobie lubicie zycie utrudniac. Owszem to zadanie to klasyczny przyklad na algorytm zamiatania ktory uzywa AVL, RB-tree lub jakiegokolwiek innego drzewa zrownowazonego.
Ale jednoczesnie jest to takze klasyczny przyklad na algorytm typu divide&conqueer, gdzie nie stosuje sie zadnych skomplikoanych struktur danych i robi sie to poprzez zwykla rekurencje.
Oba te algorytmu dzialaja w czasie nlgn, a jesli sie nie myle to metoda dziel i zwyciezaj ma chyba mniejsza stala. Jak chcecie to sobei robcie te AVLe, ale wedlug mnie mija sie to raczej z celem...
|
|
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: Pon 1:47, 27 Mar 2006 Temat postu: |
|
|
Cormen s. 1013 i po zadaniu ;).
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
mateo
pijak
Dołączył: 08 Mar 2006
Posty: 296
Przeczytał: 0 tematów
Skąd: Krk - Biały Prądnik
|
Wysłany: Pon 15:31, 27 Mar 2006 Temat postu: |
|
|
Madras napisał: | Cormen s. 1013 i po zadaniu |
Albo Diks s. 272 (dla tych ktorzy preferuja drzewa AVL :P)
ja tam jednak wole metode dziel i zwyciezaj bo jest prosta w implementacji i jak widac mozna bez problemu bez gwiazdki przepchnac.
PS. w testerce na virgo zrobilem podobnie jak przy zadaniu F ze jest udostepniony generator losowych testow oraz kwadratowa wzorcowka (zeby byla pewnosc ze wyniki beda poprawne), wiec jak cos to mozna sobie generowac testy z n <= 10000
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Robson
zielony żul
Dołączył: 21 Paź 2005
Posty: 1274
Przeczytał: 0 tematów
Skąd: Z Lasu :]
|
Wysłany: Pon 17:31, 27 Mar 2006 Temat postu: |
|
|
na pierwszy rzut oka wydaje mi się że obie metody są równie pokręcone (znaczy sie są logiczne i bazuja na podobnym pomysle, tylko implementacja jest skomplikowana)...
jeszcze nie wiem która lepsza, i nie zamierzam sie tym zajmować aż do weekendu, bo nie mam czasu, ale jakby co to chyba zrobie AVL drzewka - kiedys w koncu trzeba przez to w zyciu przejść ;)
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Adams
pijak
Dołączył: 19 Sty 2006
Posty: 58
Przeczytał: 0 tematów
|
Wysłany: Sob 5:13, 01 Kwi 2006 Temat postu: |
|
|
Ten algorytm z Cormena spokojnie przechodzi. Dodałem sobie jeszcze ładne sortowanie danych po wczytaniu i wszystko śmiga jak burza. Moim zdaniem nie ma sensu udziwniać tego zadania drzewkami AVL...
Uwaga na typ odległości. Dla skrajnie dalekich punktów, może przekroczyć longinta. Mówię, bo sam to sobie uświadomiłem tuż przed wysłaniem zadania :P
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Robson
zielony żul
Dołączył: 21 Paź 2005
Posty: 1274
Przeczytał: 0 tematów
Skąd: Z Lasu :]
|
Wysłany: Śro 23:47, 05 Kwi 2006 Temat postu: |
|
|
Chciałem zapytać jak poradziliście sobie jesli jekies (wiecej niz jeden) punkty leżą na prostej podziału? Bo ja mam juz niezłego zwisa. Punkty pamietam tak jak ma być: Raz posortowane po x-ach w drugiej tablicy po y-kach. Czy moze to jest obojętne do którego przediału wpadają jakie y-ki?
Np taki przykład:
posortowane x: (0,1) (1,2) (2,5) (2,4) (2,3) (4,8 ) (5,4) (5,1);
posortowane x: (0,1) (5,1) (1,2) (2,3) (5,4) (2,4) (2,5) (4,8 );
i teraz robie unmerge według (2,4):
(0,1) (1,2) (2,3) (2,4)
(5,1) (5,4) (2,5) (4,8 )
no i wtej pierwszej tablicy są pary, które nie wystepuja w posortowaniu według x-a z lewej strony pary (2,3). Czy to moze zaważyć na algorytmie w jakiś sposob, skoro z tablicy x-a kozystamy tylko do wybrania elementu dzielącego? czy wystarczy tylko zadbać o to zeby była równowaga tych tablic?
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Rogal
Zjeb z kaszanką
Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów
Skąd: koło podbiegunowe
|
Wysłany: Czw 0:00, 06 Kwi 2006 Temat postu: |
|
|
Adams napisał: | Ten algorytm z Cormena spokojnie przechodzi. Dodałem sobie jeszcze ładne sortowanie danych po wczytaniu i wszystko śmiga jak burza. Moim zdaniem nie ma sensu udziwniać tego zadania drzewkami AVL...
Uwaga na typ odległości. Dla skrajnie dalekich punktów, może przekroczyć longinta. Mówię, bo sam to sobie uświadomiłem tuż przed wysłaniem zadania :P |
Ja przechowuję kwadraty odległości - i ta wartość może przekroczyć int64 :shock: Na szczęście jest qWord.
Robson napisał: | Np taki przykład:
posortowane x: (0,1) (1,2) (2,5) (2,4) (2,3) (4,8 ) (5,4) (5,1);
posortowane x: (0,1) (5,1) (1,2) (2,3) (5,4) (2,4) (2,5) (4,8 );
i teraz robie unmerge według (2,4):
(0,1) (1,2) (2,3) (2,4)
(5,1) (5,4) (2,5) (4,8 )
|
Ja dołożyłem do tego tablicę boolowską o długości n, w której przy dzieleniu tablicy X na dwie podtablice ustawiam elementom o odpowiednich indeksach wartości true / false zależnie czy są w lewej czy prawej podtablicy.
A przy takim podziale, tj. że tablice X i Y po podziale mają różne elementy w różnych połówkach - prawie na pewno coś się zwali.
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Robson
zielony żul
Dołączył: 21 Paź 2005
Posty: 1274
Przeczytał: 0 tematów
Skąd: Z Lasu :]
|
Wysłany: Czw 1:32, 06 Kwi 2006 Temat postu: |
|
|
No i pewnie miałeś racje.. jak narazie ans, ale nie chce mi sie szukać dziur dzisiaj ;) i tak dobrze poszło - 2h i punkt zaczepienia mam ;)
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
hansu
Nieomylny Admin
Dołączył: 17 Lis 2005
Posty: 1990
Przeczytał: 0 tematów
Skąd: przychodzimy? Czym jestesmy? Dokad zmierzamy?
|
Wysłany: Czw 1:40, 06 Kwi 2006 Temat postu: |
|
|
A ja to robie na listach wiazanych... Tzn na najnizszym poziemie rekurencji, gdy mam 2 albo trzy punkty tworze z nich posortwana liste wiazana... A na wyzszych poziomach odbieram od nizszych dwie listy i robie im merga... Dziala bardzo dobrze tylko trzeba sie w listach nie pogubic :)
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Robson
zielony żul
Dołączył: 21 Paź 2005
Posty: 1274
Przeczytał: 0 tematów
Skąd: Z Lasu :]
|
Wysłany: Czw 1:57, 06 Kwi 2006 Temat postu: |
|
|
Sięgnąłem do testerki mateo... powiedzcie mi co znaczy jak mam ans i pisze [expected: ...] [received: ...] ?
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
hansu
Nieomylny Admin
Dołączył: 17 Lis 2005
Posty: 1990
Przeczytał: 0 tematów
Skąd: przychodzimy? Czym jestesmy? Dokad zmierzamy?
|
Wysłany: Czw 2:10, 06 Kwi 2006 Temat postu: |
|
|
To znaczy ze Twoj program dal odpowiedz (received) inna niz oczekiwana (expected).
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Robson
zielony żul
Dołączył: 21 Paź 2005
Posty: 1274
Przeczytał: 0 tematów
Skąd: Z Lasu :]
|
Wysłany: Czw 7:35, 06 Kwi 2006 Temat postu: |
|
|
no ok, ale dlaczego kropeczki, a nie tak jak w innych przypadkach jakieś liczby? Swoją drogą mam naprawde dziwny błąd bo moj program zawsze podaje mniejsze odpowiedzi :P pewnie mam coś zrypane w liczeniu odległości (!) ;)
---------------------
Hehe juz wiem - u mnie daje dobre wyniki, a na virgo złe, bo jakiejś zmiennej nie inicjalizuję, albo znowu bląd z int64... jeszcze nie wiem dokładnie która zmienna ale sie dowiem :P
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
mateo
pijak
Dołączył: 08 Mar 2006
Posty: 296
Przeczytał: 0 tematów
Skąd: Krk - Biały Prądnik
|
Wysłany: Czw 20:47, 06 Kwi 2006 Temat postu: |
|
|
Robson napisał: | Sięgnąłem do testerki mateo... powiedzcie mi co znaczy jak mam ans i pisze [expected: ...] [received: ...] |
Heh, no wlasnei tez chcialbym to wiedziec....:) program do porownywania outputow pisalem pare lat temu i nie pamietam skad sie to moze brac. W poprzedniej wersji testerki byl uzywany zwykly diff z parametrami --ignore-blnak-lines i ignore-all-spaces czy jakos tak.... W tej drugiej sam napisalem swoj program do porownywania zeby podawal wstepnie co moze byc zle... (zeby nie trzeba bylo od razu do inputa wchodzic i szukac dokladnei na jakichch danych sie moglo wykrzaczyc... no bo czasem od razu wiadomo w czym moze tkwic blad). A te kropeczki... hmm :) jak sie skoncza te zwalone kolosy to zajrze do kodu i zobacze co tam moze byc nie tak.
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Robson
zielony żul
Dołączył: 21 Paź 2005
Posty: 1274
Przeczytał: 0 tematów
Skąd: Z Lasu :]
|
Wysłany: Czw 21:07, 06 Kwi 2006 Temat postu: |
|
|
juz przeszło :) pare głupich naprawde byków strzeliłem i zrobiłem jeden kardynalny - nie scalałem podtablic jak wracałem z rekurencji - i sie sortowanie piepszyło - cóż o tym nie napisali w Cormenie explicite ;)
jeszcze raz wielkie dzieki Mateo za testerke, bo tak to bym siedział i pisał teraz własne generatory i wzorcówki na n^2 złożoności... a tak poszło szybko i bez zbednego bółu :)
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
exeman
Mistrz grilla
Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów
Skąd: znienacka
|
Wysłany: Nie 17:05, 23 Kwi 2006 Temat postu: |
|
|
A ja mam taki problem.
1. Prog moj dziala na virgo, dla testow z malymi zakresami dziala, dla duzych juz daje zle wyniki. Stosuje QWordy, ale mimo wszystko zle dziala dla ogromnych odleglosci.
2. Jest wolny (TLE dla duzych testow), mimo, ze stosowalem algorytm Cormena, z jedna modyfikacja: Nie dziele Y na Y1 i Y2 (zeby pasowalo do X1, X2), tylko przekazuje do procki (rekurencyjnej) tylko lewy i prawy zakres z X, co mi daje odpowiedni przedzial po X, a ten Y wyliczam sobie przy wejsciu do procedury (wyciagam z globalnej tablicy posortowanej po y). Dziala, wolno, moze dlatego?
Pozdro :)
|
|
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: Nie 17:22, 23 Kwi 2006 Temat postu: |
|
|
1. Sądzę, że wykonujesz działanie typu longint * longint, a dopiero potem wynik wpisujesz do QWorda. Jeśli masz -1000000 * -1000000, to wynik przekroczy zakres longint'a i dostaniesz śmieci. Dlatego trzeba najpierw zrzutować na większy typ (przynajmniej jedną ze zmiennych), a dopiero wykonywać działanie. Jednak jeśli użyjesz QWorda do tego celu, to konwersja będzie niepoprawna (QWord nie ma znaku), dlatego jedyne sensowne wyjście to użycie Int64. Co prawda ma dwukrotnie mniejszy zakres, jednak w tym zadaniu w zupełności on wystarcza. Ewentualnie przyczyną blędy może być kompilacja z optymalizacją, jeśli powyższe uwagi nie pomogą, to ściągnij testy do siebie, i sprawdź, czy zwykła kompilacja i kompilacja -OG2p3 daje takie same wyniki. Jeśli nie, to musisz popróbować ze wstawianiem x:=x w różnych miejscach kodu (najprawdopodobniej w okolicy rzutowania na int64/wykonywania na nich obliczeń), to już 2 osobom tego typu rzeczy się zdarzały.
2. W jakim czasie wyciągasz z globalnej tablicy, O( n )? Jeśli tak, to nie powinno być problemu przez to... Ja obie podtablice tworzyłem od nowa korzystając z tablic dynamicznych i mi przeszło wszystko.
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
exeman
Mistrz grilla
Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów
Skąd: znienacka
|
Wysłany: Nie 17:31, 23 Kwi 2006 Temat postu: |
|
|
Madras: dzieki duzo pomoglo :)
Teraz mam RD8 w niektorych przypadkach, ale to juz raczej niestety sam musze sie pomeczyc :P
|
|
Powrót do góry |
|
|
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: Nie 18:02, 23 Kwi 2006 Temat postu: |
|
|
O ile dobrze pamiętam, w treści zadania było zaznaczone, że punkty są parami różne. Natomiast w niektóych testach matea zdarzały się przypadki równych punktów i właśnie tam mój program dostawał runtimy ;) .
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Hetman
pijak
Dołączył: 06 Gru 2005
Posty: 127
Przeczytał: 0 tematów
Skąd: Ustka/Kraków
|
Wysłany: Pon 0:36, 01 Maj 2006 Temat postu: |
|
|
gdyby ktos mogl zapodac jak sciagnac testy to bylbym wdzieczny (sposob "standardowy" nie dziala:/ )
|
|
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
|