Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 164 Struti  (Citit de 6687 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ditzone
Vizitator
« : Decembrie 17, 2005, 14:51:45 »

Aici puteţi discuta despre problema Struti.
Memorat
cristi8
Vizitator
« Răspunde #1 : 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 ?
 Thumb down
Memorat
greco
Nu mai tace
*****

Karma: 144
Deconectat Deconectat

Mesaje: 434



Vezi Profilul
« Răspunde #2 : Decembrie 18, 2005, 12:22:17 »

Trist ca merge asa de prost algoritmul ala. Smile Doar pt. ca e mai complicat nu inseamna ca e mai eficient.
Memorat

Jump in the cockpit and start up the engines
Remove all the wheelblocks there's no time to waste
Gathering speed as we head down the runway
Gotta get airborne before it's too late.
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #3 : 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  Neutral
Memorat
gogu
Client obisnuit
**

Karma: 42
Deconectat Deconectat

Mesaje: 98



Vezi Profilul
« Răspunde #4 : 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  Very Happy).
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.
Memorat
ditzone
Vizitator
« Răspunde #5 : Decembrie 19, 2005, 09:38:12 »

Dupa punctaje se pare ca nu sunt suficiente Smile
Memorat
DeadStar
Client obisnuit
**

Karma: 2
Deconectat Deconectat

Mesaje: 59



Vezi Profilul
« Răspunde #6 : 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.  Cool
Memorat

filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #7 : Aprilie 09, 2006, 13:17:49 »

Eu nu am facut nici o optimizare in sursa mea. Eh? 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...

Memorat
DeadStar
Client obisnuit
**

Karma: 2
Deconectat Deconectat

Mesaje: 59



Vezi Profilul
« Răspunde #8 : 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?
« Ultima modificare: Aprilie 09, 2006, 14:15:53 de către DeadStar » Memorat

filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #9 : 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... Think.
Memorat
DeadStar
Client obisnuit
**

Karma: 2
Deconectat Deconectat

Mesaje: 59



Vezi Profilul
« Răspunde #10 : 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!
Memorat

filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #11 : Aprilie 09, 2006, 20:56:05 »

 Applause
Memorat
ooctav
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 15



Vezi Profilul
« Răspunde #12 : 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 ?
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #13 : 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 Smile.
Memorat
alexandra_sandu
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #14 : 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.

Memorat
Schumi
Client obisnuit
**

Karma: 36
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #15 : Octombrie 06, 2012, 14:04:45 »

Puteti sa mariti limita? Fara parsare se pot lua maxim 90 de puncte.
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #16 : Octombrie 07, 2012, 12:57:43 »

Am modificat limita de timp la 2 secunde.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
assa98
Strain
*

Karma: -19
Deconectat Deconectat

Mesaje: 33



Vezi Profilul
« Răspunde #17 : 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
Memorat
danalex97
Vorbaret
****

Karma: 54
Deconectat Deconectat

Mesaje: 192



Vezi Profilul
« Răspunde #18 : Martie 15, 2013, 13:34:52 »

Ai putea sa faci deque de mana in loc de cel din STL.
Memorat
assa98
Strain
*

Karma: -19
Deconectat Deconectat

Mesaje: 33



Vezi Profilul
« Răspunde #19 : Martie 15, 2013, 15:22:44 »

pe problema branza luam 40p cu el de mana, pe cand STL ul lua 100...
Memorat
CosminRusu
De-al casei
***

Karma: 77
Deconectat Deconectat

Mesaje: 104



Vezi Profilul
« Răspunde #20 : 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  Raised eyebrow. Cam care ar fi explicatia Smile?
Memorat
assa98
Strain
*

Karma: -19
Deconectat Deconectat

Mesaje: 33



Vezi Profilul
« Răspunde #21 : Martie 19, 2013, 10:57:26 »

infoarena.ro/12-ponturi-pentru-programatorii-cc pontul 5 .  Very Happy
Memorat
CosminRusu
De-al casei
***

Karma: 77
Deconectat Deconectat

Mesaje: 104



Vezi Profilul
« Răspunde #22 : Martie 19, 2013, 13:23:42 »

Eu credeam ca e chiar invers   Ok.
Merci
Memorat
isus
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #23 : Iunie 03, 2014, 15:52:14 »

prea simpla.Cautati "tetris2";
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines