Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: 481 Flori  (Citit de 12397 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« : August 13, 2007, 22:40:49 »

Aici puteţi discuta despre problema Flori.
Memorat
bogdanhm999
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 26



Vezi Profilul
« Răspunde #1 : Februarie 08, 2008, 15:10:21 »

1)e o problema la lista  de surse trimise la problema asta, adika nu apare
2) ce complexitate ar trebui ? eu am (n*(n/1)*1024/64)=n*(n-1)*16 si iau
TLE ba pe 1 test ba pe 2 la aceiasi sursa  Think la trimiteri succesive
Memorat
jupanu92
Client obisnuit
**

Karma: -86
Deconectat Deconectat

Mesaje: 76



Vezi Profilul
« Răspunde #2 : Martie 29, 2008, 16:34:00 »

As putea declara o matrice cu 1001 coloane si 1001 linii  ?? ?de tip int ?
Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #3 : Martie 29, 2008, 17:17:43 »

da. poti sa calculezi memoria inmultind dimensiunea fiecarui tablou cu marimea tipului de date al tabloului si adunand rezultatele. daca ai doar o matrice de 1001 pe 1001 o sa ai 1001*1001*4 bytes ~ 4 MB (o variabila 'int' are 4 bytes). aici gasesti o lista cu dimensiunile tipurilor de date. o variabila 'long long' are 8 bytes.

L.E.: uitandu-ma mai bine la problema am observat ca a fost data la judeteana, deci evaluarea s-a facut pe borland. in borland nu poti sa declari mai mult de 128kb (selectand modelul huge), deci in concurs nu ai fi putut sa declari o astfel de matrice. daca vrei sa te antrenezi pentru la anul, iti sugerez sa lucrezi problemele de la aceste faze pe borland, pentru a fi cat mai aproape de conditiile de concurs.
« Ultima modificare: Martie 29, 2008, 17:32:17 de către Bogdan A. Stoica » Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
sigrid
De-al casei
***

Karma: 61
Deconectat Deconectat

Mesaje: 129



Vezi Profilul
« Răspunde #4 : Martie 29, 2008, 17:39:43 »

In plus poti rezolva problema folosind decat 2 vectori de 1001 elemente. Incearca sa gasesti o astfel de rezolvare si daca tot nu merge poti eventual sa citesti solutiile oficiale.

Sa ai spor Smile !
Memorat
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« Răspunde #5 : Martie 30, 2008, 14:41:38 »

Am micsorat limita de memorie (ca sa fie ca pe borland) si am reevaluat.

Acum nu mai poti declara o matrice de 1000 linii si 1000 coloane.
Memorat
jupanu92
Client obisnuit
**

Karma: -86
Deconectat Deconectat

Mesaje: 76



Vezi Profilul
« Răspunde #6 : Martie 30, 2008, 15:03:58 »

da Ms ptr sfaturi dar pr asta am mai rezolvato cu matrice dar dupa restrictiile de la oji nu de pe infoarena si acu cred ca tre sa ma gandesc la alta metoda de rezolvare
« Ultima modificare: Martie 30, 2008, 15:13:27 de către Popescu Marius » Memorat
jupanu92
Client obisnuit
**

Karma: -86
Deconectat Deconectat

Mesaje: 76



Vezi Profilul
« Răspunde #7 : Martie 30, 2008, 15:44:43 »

wow se pare ca toti siau declarat matrice cu  1000 de linii si 1000 de coloane ptr ca doar 2 pers am vazut cu 100 de p din foarte multi Very Happy
« Ultima modificare: Martie 30, 2008, 15:56:45 de către Popescu Marius » Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #8 : Martie 30, 2008, 17:34:25 »

majoritatea au facut-o asa pt ca incapea fara probleme....dc sa te chinui sa gasesti alta rezolvare cand incape si cu o matrice!

scopul rezolvarii problemelor din arhiva infoarena este antrenamentul. nu este o idee buna spunand ca "merge si asa". evident, daca "merge si asa" in concurs, atunci nu te mai complici, dar pe infoarena ai tot timpul din lume Very Happy
Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
jupanu92
Client obisnuit
**

Karma: -86
Deconectat Deconectat

Mesaje: 76



Vezi Profilul
« Răspunde #9 : Martie 31, 2008, 09:34:07 »

N-am spus ca nu o sa mai poata sa o faca ci ca o sa se chinuie mai mult ptr ca inainte mergea lejer acu trebuie sa te gandesti la o rezolvare mai eficienta
Memorat
Robybrasov
Strain
*

Karma: 3
Deconectat Deconectat

Mesaje: 33



Vezi Profilul
« Răspunde #10 : August 20, 2008, 18:00:01 »

am facut mai multe solutii, cea care necesita cea mai putina memorie foloseste 1000 KB unde folosesc o matrice de 1000*1000 de tip byte (in fpc), ca sa retin 0 si 1 pentru fetita/tip de floare
nu imi dau seama cum sa retin datele cu mai putina memorie sau de o solutie care sa nu foloseasca deloc matrice.
imi puteti da vreo indicatie?
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #11 : August 20, 2008, 20:39:12 »

Eu am folosit liste de adiacenta, si am cel mult 248kb memorie.
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #12 : Octombrie 29, 2008, 19:26:07 »

Complexitatea oficiala cam care este? Pentru ca banuiesc ca O(N^3) cum m-am gandit eu iese cu mult din timp(avand in vedere ca N are valoarea maxima 1000, iar limita de timp este de 0.5 secunde)  Very Happy
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #13 : Octombrie 29, 2008, 19:45:15 »

Merge O(N^2) cu memorie O(N).
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #14 : Octombrie 29, 2008, 19:50:20 »

O(N^2) Think
Asta inseamna ca ar trebui sa verific daca doua fetite au flori comune in O(1)?
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #15 : Octombrie 29, 2008, 20:32:22 »

Nu am gandit asa problema. Eu am incercat sa aflu ce flori au cel putin o fetita comuna Wink
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #16 : Octombrie 29, 2008, 20:48:01 »

Nu am gandit asa problema. Eu am incercat sa aflu ce flori au cel putin o fetita comuna Wink
Si cum ai scos O(N) memorie? Adica m-am gandit ca pentru fiecare floare sa tin o lista dinamica cu fetitele care au floarea respactiva, dar totusi nu cred ca intra in 640 kb  Think Si cum adica ce flori au cel putin o fetita comuna? Confused
« Ultima modificare: Octombrie 29, 2008, 22:18:43 de către Andrei Misarca » Memorat
Cristian_B
Strain


Karma: -8
Deconectat Deconectat

Mesaje: 18



Vezi Profilul
« Răspunde #17 : Martie 09, 2009, 20:11:44 »

Pot spune ca nu m-am chinuit niciodata la o problema mai mult decat la aceasta, am incercat 3 moduri de abordare ale ei ( prima data sa citesc din fisier si sa lucrez cu fisierul care m-a incurcat enorm din cauza ca tabloul cu fetite incepea de pe a 2-a linie, apoi cu matrice care mi-a taiat 2 teste din grupa a 2-a ca am depasit cu 4 kb  Brick wall in final alta abordare cu matrice mi-a adus 40 de puncte pe infoarena, care, chiar daca sunt 0 in evaluator dar mi se par cele mai muncite  0 puncte vreodata, mesajul meu este offtopic probabil dar sunt curios, functia eoln(f), ori nu stiu eu sa operez cu ea ori ea se lasa pacalita de un spatiu liber la sfarsitul randului sau ce? Btw /bow pentru cei care au rezolvato pana acum.
Memorat
robigi
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #18 : Martie 11, 2009, 12:53:27 »

pot santreb shi eu un lucru: cand la note scrie: Intr-o grupa numerele de ordine ale fetitelor trebuie date in ordine crescatoare se refera la faptul k datele de intrare sunt astfel scrise sau datele de iesire trebuie scrise crescator?
 Think
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #19 : Martie 11, 2009, 12:56:26 »

Se refera la datele de iesire.
Memorat
andrey932
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 5



Vezi Profilul
« Răspunde #20 : Martie 12, 2009, 22:26:53 »

e problema de la oji din 2006...originala era cu
•   1<=n<=150
•   1<=k<=100
astfel o puteai face cu multimi:)   Read This!
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #21 : Martie 12, 2009, 23:15:42 »

e problema de la oji din 2006...originala era cu
•   1<=n<=150
•   1<=k<=100
astfel o puteai face cu multimi:)   Read This!


Asa, si?  Smile
Memorat
doru.nitu
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #22 : Iunie 24, 2009, 16:44:31 »

Stie cineva ce e asa special la testul1?  ca imi da incorect Brick wall
E vreun caz particular ?
Memorat
xtreme
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 118



Vezi Profilul
« Răspunde #23 : Iulie 22, 2009, 16:26:42 »

Merge O(N^2) cu memorie O(N).
Nu am gandit asa problema. Eu am incercat sa aflu ce flori au cel putin o fetita comuna Wink
Daca nu gresesc , ai folosit doua liste alocate dinamic in care tineai toate fetitele ce detin tipul florii i(i=1,k) si toate tipurile de florii ce detin fetita j(j=1,n).De aici eu cred ca tu ai folosit memorie O(N^2) pe testul de gen: 
Citat
1000 1000
1 2 3 4 ... 1000    //linia 1
.
.   
.
1 2 3 4 ... 1000   //linia 1000
Banuiesc ca nu exista niciun test de gen din moment ce ai trecut peste toate folosind O(N^2).
Te rog sa ma corectezi daca gresesc.

Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #24 : Iulie 22, 2009, 21:44:19 »

Nu folosesc alocare dinamica decat pentru afisare (si acolo aloc O(N) memorie).

Poate ca nu este destul de clar cum functioneaza algoritmul meu asa ca il voi explica mai in detaliu:

La prima vedere, problema pare ca ascunde un graf destul de evident: nodurile sunt fetitele, iar muchiile sunt reprezentate de flori. Intre doua fetite exista muchie daca si numai daca au cel putin o floare comuna. Se cere determinarea componentelor conexe.

Eu am abordat altfel modelarea grafului: la mine nodurile sunt reprezentate de flori (am intotdeauna 1000 de noduri), iar muchiile de fetite. Intre doua noduri i si j exista muchie daca si numai daca exista o fetita care sa aiba atat o floare de tip i, cat si una de tip j. Deasemenea si in aceasta modelare se cer componentele conexe.

Pe parcursul algoritmului imi mentin un vector c (initial c[ i ] = i) avand proprietatea ca c[ i ] == c[ j ] daca si numai daca nodurile i si j fac parte din aceeasi componenta conexa. Pentru fiecare fetita noua pe care o citesc, inserez niste muchii in graf, deci s-ar putea ca vectorul c sa se modifice. Ar trebui sa fie destul de clar cum fac modificarile in timp liniar.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

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