infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: ditzone din Decembrie 17, 2005, 14:51:45



Titlul: 164 Struti
Scris de: ditzone din Decembrie 17, 2005, 14:51:45
Aici puteţi discuta despre problema Struti (http://infoarena.ro/problema/struti).


Titlul: 164 Struti
Scris de: cristi8 din Decembrie 18, 2005, 12:19:23
eu la concurs am facut-o in O(P*N*M*log(N*M)) .. folosind ceva asemanator cu QuadTree.. numai ca adaptat pentru dreptunghiuri (care mi-a luat ceva timp pentru a-l implementa si depana pentru prima data).. si am luat 20 (eu ma asteptam la vreo 80 de puncte).

acum vad ca se lua 30 cu un algoritm P*N^2*N^2.

..trist, nu ?
 :thumbdown:


Titlul: 164 Struti
Scris de: Tiberiu-Lucian Florea din Decembrie 18, 2005, 12:22:17
Trist ca merge asa de prost algoritmul ala. :) Doar pt. ca e mai complicat nu inseamna ca e mai eficient.


Titlul: 164 Struti
Scris de: Filip Cristian Buruiana din Decembrie 18, 2005, 12:54:18
Citat
eu la concurs am facut-o in O(P*N*M*log(N*M))
Un astfel de algoritm este evident mai bun decat P * N^2 * M^2., care lua 30 ( intr-adevar, am conceput testele ca un brute sa ia 30% din teste ), asa k inseamna k implementarea nu este tocmai cea facuta de tine, probabil ai facut operatii in plus care determinau constanta. Si mergea mult mai simplu parerea mea cu AIBuri 2D sau cu segment trees 2D  :|


Titlul: 164 Struti
Scris de: Gogu Marian din Decembrie 18, 2005, 15:30:52
Testele ar fi trebuit sa fie mai echilibrate un pic.
Cu arbori de intervale nu merge mult mai bine decat cu un brute.
Asta pentru ca varianta in O(P*N*M*logN*logM) se detaseaza clar de una in O(P*N^2*M^2) decat cand N si M sunt mari, iar in cazul asta oricum ia TLE. Varianta mea de arbori de intervale, destul optimizata, a luat initial 40. (La concurs 0  :D).
Dupa multe, multe, multe optimizari si incercari, am reusit sa iau 100 cu solutia asta, care acum se comporta aproape ca si cum ar fi O(P*M*N).
Apropo, va rog sa nu mai propuneti asa de multe probleme de deque. Sunt deja destule.


Titlul: 164 Struti
Scris de: ditzone din Decembrie 19, 2005, 09:38:12
Dupa punctaje se pare ca nu sunt suficiente :)


Titlul: Re: 164 Struti
Scris de: Ionel Corneliu Gog din Aprilie 09, 2006, 13:11:16
Nu ar trebui chiar un pic ridicata limita? Ma tot chinui si nu reusesc sa iau mai mult de 80. Sau recomandati ceva optimizari.  8)


Titlul: Raspuns: 164 Struti
Scris de: Filip Cristian Buruiana din Aprilie 09, 2006, 13:17:49
Eu nu am facut nici o optimizare in sursa mea. :-s Incearca sa faci dequeul cam asa:
Cod:
while (prim <= ultim && st[prim].poz <= i-DX) 	    prim++;
while (ultim >= prim && st[ultim].val < M[i][j])    ultim--;
st[++ultim].val = M[i][j]; st[ultim].poz = i;
Eu am facut de 4 ori ceva similar in programul meu si am sub 3 secunde... Si ai grija sa procesezi si perechea inversa (DY, DX) <=> DX != DY. Daca tot nu iti merge, incearca sa citesti cu stringuri...



Titlul: Re: 164 Struti
Scris de: Ionel Corneliu Gog din Aprilie 09, 2006, 13:39:02
Stiu sa fac deque, iar daca luam nu luam in considerare dy,dx luam WA nu TLE. Am citit cu stringuri si au mai scazut un pic timpi, dar tot sunt maricei. Tu folosesti cate 2 deque pentru fiecare line/coloana(cum ti-ai ales) + alte 2 deque?


Titlul: Raspuns: 164 Struti
Scris de: Filip Cristian Buruiana din Aprilie 09, 2006, 13:58:40
DA, fac un deque pt. linii, unul pentru coloane si dupa aceea alte doua deque-uri. Singura "optimizare" care o mai vad in sursa mea este ca nu parcurg intotdeauna toata matricea, ci merg de la (1,1) la (m-DX+1, n), de exemplu, in unul din deque-uri...atata tot... si am maxim 2.74 secunde... :-k.


Titlul: Re: 164 Struti
Scris de: Ionel Corneliu Gog din Aprilie 09, 2006, 20:54:05
Cod:
TEST 6	...[2.14s]...	OK!
TEST 7 ...[2.10s]... OK!
I-am luat in final capul la strut!


Titlul: Raspuns: 164 Struti
Scris de: Filip Cristian Buruiana din Aprilie 09, 2006, 20:56:05
 =D&gt;


Titlul: Răspuns: 164 Struti
Scris de: Tuchila Octavian din Martie 28, 2010, 11:50:09
Ma puteti ajuta ?
Am complexitatea N * M * P.
Implementat cu STL iau 2 TLE-uri.
Implementat fara iau 1 TLE si 1 WA.
Trebuie sa fac ceva optimizari ?


Titlul: Răspuns: 164 Struti
Scris de: Pripoae Teodor Anton din Martie 28, 2010, 19:25:41
Probabil unul din TLE-uri e WA, asa ca mai bine cauta bug-ul si dupa incearca sa optimizezi :).


Titlul: Răspuns: 164 Struti
Scris de: Sandu Alexandra Mihaela din Mai 03, 2012, 22:30:44
Puteti mari limita de timp va rog frumos? Am incercat sa trimit 2 surse care luau inainte 100 si acum iau 80 si 90. Sursa mea ia 70 si am complexitatea optima, nu fac niciun calcul inutil.



Titlul: Răspuns: 164 Struti
Scris de: Dumitru Andrei Georgian din Octombrie 06, 2012, 14:04:45
Puteti sa mariti limita? Fara parsare se pot lua maxim 90 de puncte.


Titlul: Răspuns: 164 Struti
Scris de: Andrei Grigorean din Octombrie 07, 2012, 12:57:43
Am modificat limita de timp la 2 secunde.


Titlul: Răspuns: 164 Struti
Scris de: Andrei Stanciu din Martie 13, 2013, 20:58:03
iau TLE pe doua teste. poate sa ma ajute cineva? https://infoarena.ro/job_detail/913886?action=view-source (https://infoarena.ro/job_detail/913886?action=view-source)


Titlul: Răspuns: 164 Struti
Scris de: Dan H Alexandru din Martie 15, 2013, 13:34:52
Ai putea sa faci deque de mana in loc de cel din STL.


Titlul: Răspuns: 164 Struti
Scris de: Andrei Stanciu din Martie 15, 2013, 15:22:44
pe problema branza luam 40p cu el de mana, pe cand STL ul lua 100...


Titlul: Răspuns: 164 Struti
Scris de: Cosmin Rusu din Martie 16, 2013, 13:56:50
Eu la problema asta luam 80 de puncte cu i si j declarate global...
Dupa ce am facut asa
Cod:
for(int i=1; i<=...)
am luat 100 :yahoo:.
Destul de ciudat  :eyebrow:. Cam care ar fi explicatia :)?


Titlul: Răspuns: 164 Struti
Scris de: Andrei Stanciu din Martie 19, 2013, 10:57:26
infoarena.ro/12-ponturi-pentru-programatorii-cc (http://infoarena.ro/12-ponturi-pentru-programatorii-cc) pontul 5 .  :D


Titlul: Răspuns: 164 Struti
Scris de: Cosmin Rusu din Martie 19, 2013, 13:23:42
Eu credeam ca e chiar invers   :ok:.
Merci


Titlul: Răspuns: 164 Struti
Scris de: rarinca.tudor din Iunie 03, 2014, 15:52:14
prea simpla.Cautati "tetris2";