Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 435 Eliminare  (Citit de 4373 ori)
0 Utilizatori şi 2 Vizitatori pe acest subiect.
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« : Aprilie 26, 2007, 00:32:17 »

Aici puteţi discuta despre problema Eliminare.
Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #1 : Iulie 31, 2007, 16:10:27 »

Cum ar trebui sa fac query-urile in arborele de intervale astfel incat sa tin cont de elementele sterse (notate cu -1)? Mai exact, cum imi dau seama in ce interval trebuie sa fac query?

Am vazut ca solutia oficiala tot asa sterge elementele... dar codul este scris astfel incat nu se poate intelege mare lucru din el
Memorat
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #2 : Iulie 31, 2007, 16:20:16 »

Mai tii un arbore pentru asta, care iti va spune care este al K-lea element nescos inca.
Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #3 : Iulie 31, 2007, 19:59:35 »

Si cum as putea face asta?

Eu m-am gandit sa aflu cate elemente au fost eliminate in intervalul [1, x] si [1, y] cu un arbore, si apoi query-ul pt maxim sa-l fac in intervalul [x+eliminate_in1-x, y+eliminate_in1-y]... dar asa si pe cele 2 teste care intra in timp iau WA, deci nu e bine...
Memorat
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #4 : Iulie 31, 2007, 23:28:12 »

Sa spunem ca ai un arbore de intervale care pentru un nod care are asociat intervalul [st,dr] stii cate pozitii valide din intervalul [st,dr] ai (pozitii cu elemente neeliminate inca). Acum daca vrei sa stii care este a K-a pozitie valida procedezi in felul urmator: te uiti prima oara la intervalele [1,N/2] si [N/2+1, N], daca in intervalul [1, N/2] ai cel putin K pozitii valide e clar ca pozitia care o cauti se afla in acest interval si este a K-a din acest interval, altfel pozitia care o cauti este a (K-x)-a pozitie din intervalul [N/2+1, N] (unde x este numar de pozitii valide din intervalul [1, N/2]). Procedezi in continuare asa pana restrangi intervalul la un singur element.
Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #5 : August 01, 2007, 13:20:44 »

Ok, mersi, aproape ca mi-a iesit! Smile

Am TLE pe ultimele 2 teste... si am optimizat cat am stiut. Am doua interogari pentru a afla a x-a si a y-a pozitie neeliminata, apoi una pt a afla maximul si apoi o actualizare. Ceva idei de optimizare? In afara de a parsa citirea nu prea mai stiu ce sa fac...
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #6 : August 01, 2007, 14:45:32 »

Parseaza citirea. Eu asa am ajuns de la 80 la 100.
Memorat

Am zis Mr. Green
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #7 : August 01, 2007, 18:07:36 »

O optimizare care m-a ajutat pe mine a fost sa pun
Cod:
struct elem { int a, b;} A[MAXN];
in loc de
Cod:
int a[MAXN], b[MAXN];
si sa modific simultan arborii, adica fac ceva de genul
Cod:
A[nod].a += valoare1, A[nod].b += valoare2
in functia de update. Banuiesc ca motivul pentru care merge asa mai repede e ca acceseaza mai rapid memoria.
« Ultima modificare: August 01, 2007, 18:10:08 de către Airinei Adrian » Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #8 : August 01, 2007, 18:30:34 »

 Shocked Nu-mi vine sa cred... a intrat in 5.5 sec pe ultimul test  Surprised

Puteam sa jur ca folosind structuri va fi cu mult mai incet...

Mersi mult pentru ajutor Smile
Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #9 : Septembrie 21, 2007, 14:53:06 »

am aceeasi problema ca la elimin (de la preONI). iau SIGSECV si sigur nu este de la memorie. acasa imi merge pe teste mari (10000 de teste random si n-a crapat). ce poate sa fie ?  Brick wall

http://infoarena.ro/job_detail/85398
Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #10 : Septembrie 21, 2007, 15:13:25 »

Ai rulat acasa sub linux sursa?
Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #11 : Septembrie 21, 2007, 22:28:23 »

n-am linux acasa Whistle tre sa vina un hard nou mai incapator si apoi o sa bag linux  Embarassed
Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
marin
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 22



Vezi Profilul
« Răspunde #12 : Octombrie 14, 2008, 12:04:26 »

Tinand cont ca elementele sunt cate unu si doua pe linie, cum parsez citirea (ce functie folosesc)?
Memorat
Pepelea_Flaviu
Client obisnuit
**

Karma: 30
Deconectat Deconectat

Mesaje: 98



Vezi Profilul
« Răspunde #13 : Octombrie 14, 2008, 12:21:57 »

faci o parsare normala Very Happy daca ai 2 numere, atunci parcurgi sirul si tot ce e inainte de spatiu pui in a, iar restul in b
Memorat
marin
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 22



Vezi Profilul
« Răspunde #14 : Octombrie 14, 2008, 12:29:14 »

Eu inteleg asa:
O sa reduc numarul de accesari la disk cu m/2, unde m este numarul de linii cu cate doua elemente (o sa fac atatea accesari ale diskului cate linii am).
Eu ma intrabam daca pot citi intr-un buffer o data mai multe numere, chiar de pe linii diferite
Memorat
Pepelea_Flaviu
Client obisnuit
**

Karma: 30
Deconectat Deconectat

Mesaje: 98



Vezi Profilul
« Răspunde #15 : Octombrie 14, 2008, 12:57:40 »

nu merge....numa sa citesti mai multe numere aflate pe aceasi linie Smile
Memorat
andunhill
Vorbaret
****

Karma: 12
Deconectat Deconectat

Mesaje: 183



Vezi Profilul
« Răspunde #16 : Noiembrie 14, 2010, 13:30:58 »

100 de puncte fara parsare  Yahoo! http://infoarena.ro/job_detail/501116
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #17 : Noiembrie 14, 2010, 23:51:12 »

http://infoarena.ro/job_detail/275314

Tot fara.
Memorat
vendetta
De-al casei
***

Karma: 72
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #18 : Octombrie 04, 2011, 16:54:26 »

i`au decat 70 de pct (cu 3 teste tle ) cu o sursa cu care luam inainte 100 de pct
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #19 : Octombrie 04, 2011, 19:34:23 »

i`au decat 70 de pct (cu 3 teste tle ) cu o sursa cu care luam inainte 100 de pct

Iei fara apostrof sau orice alt separator si iei numai, nu decat. 'Decat' folosesti doar daca verbul are negatie  Smile. Gen 'Nu am decat 50 de sticle de sampanie'.
Memorat
stardust
Strain
*

Karma: 13
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #20 : Iulie 22, 2012, 17:59:52 »

Si eu iau tot 70 cu tle pe ultimele 3. Am vazut ca a fost reportata problema pentru limita de timp si e marcata ca rezolvata. Totusi mi se pare destul de stransa. Am vazut ca si tu Razvan folosesti cam tot 28 de mega pe testele alea. Retii si tu 3 informatii pt fiecare nod din arbore ? Ca sa pot sa elimin elementele am nevoie sa tin un arbore care sa imi zica pe ce pozitie in ordinea initiala se afla maximul de pe un interval. Se poate sa scap de arborele asta ? 
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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