Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 053 Car  (Citit de 5143 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
domino
Echipa infoarena
Nu mai tace
*****

Karma: 281
Deconectat Deconectat

Mesaje: 1.340



Vezi Profilul WWW
« : Februarie 24, 2005, 20:56:01 »

Aici puteţi discuta despre problema Car.
Memorat
masterthor
Strain


Karma: -3
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #1 : Martie 07, 2005, 10:58:12 »

indexarea pozitiilor initiale si finale incepe de la 0 sau la 1 ? adika primul element din matrice e A[0,0] sau A[1,1] ?
Memorat
rss1987
Strain


Karma: -6
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #2 : Martie 09, 2005, 10:21:35 »

Nasol testu 9. Think  L-a facut cineva din prima? Tot iau TLE.
 Da cu bellman-ford a facut careva?, eu asa am facut si merge binisor, poate chiar mai bine decat Dijkstra cu costuri mici. M-am uitat la solutia prezentata oficial, pare simplu, dar tocmai constanta din fata lu' N*M care este 3*8*(cate operatii efectuate cu un nod din lista) si care nu este precizata face diferenta de scor. In cazurile astea constanta n-ar trebui ignorata, e importanta!!!
Memorat

RSS
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #3 : Martie 09, 2005, 15:39:30 »

Testul 9 este cel mai costisitpr ca timp si pentru solutia noastra care sta pe el in jur de 0.5 secunde.
Memorat
cip2005
Vizitator
« Răspunde #4 : Martie 23, 2005, 02:04:50 »

Eu totusi nu inteleg o chestie in rezolvare, legata de listele folosite..  :

Citat
Daca aceste costuri sunt mici atunci si costul final al drumului de la sursa la destinatie va fi mic deci ne permitem sa folosim pentru fiecare valoare posibila a costului unui drum de la sursa la destinatie cate o lista.


si totusi ce aflam noi mai tarziu?! ca sunt 3 liste defapt! :

Citat
Am folosit numai trei liste pentru ca am tinut cont de optimizarea precizata mai sus de a nu folosi numai curbele la 0 grade, 45 grade si 90
grade.


va rog sa ma ajutati si pe mine sa ma lamuresc... Brick wall [/quote]
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #5 : Martie 23, 2005, 12:12:53 »

Pai ai daca la pasul actual expandezi noduri la care s-a ajuns cu costul C, atunci vei modifica numai listele cu costul C, C+1 si C+2, deci listele nu  cu cost C-1 C-2 .... 0 nu mai are rost sa le folosesti, iar listele de cost C+3, C+4 .... sunt inca nepopulate, deci poti folosi numai 3 liste si faci ceva de genu:

Cod:

  while (l[0].size > 0 && l[1].size() > 0 && l[2].size() > 0) {
      while (l[C % 3].size() > 0) {
            X = l[C % 3].pop();
            expand(X);
      }
      C++;      
  }


 Tot asa faci la unele programari dinamice in care in loc sa folosesti o matrice intreaga folosesti doar doua linii, linia curenta si linia urmatoare.
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #6 : Martie 05, 2006, 00:33:52 »

Puteti sa-mi spuneti cat va da pe testul:

15 15
8 8 10 14
1 0 0 0 0 1 0 0 1 1 1 0 1 1 0
0 0 1 1 1 1 0 0 0 1 0 0 0 1 1
0 1 1 0 1 0 0 1 0 0 0 0 1 0 1
0 1 1 1 0 0 1 1 1 1 0 0 1 1 1
0 0 1 1 0 0 0 0 1 0 0 0 0 1 1
0 0 0 0 1 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 1 1 0 1
1 0 0 1 0 1 1 0 0 0 1 0 1 0 1
1 1 0 0 0 0 1 0 1 0 0 0 0 1 0
1 0 0 1 0 1 0 0 0 1 1 1 1 0 1
0 0 0 1 0 0 0 1 0 0 0 0 0 0 1
1 0 1 0 1 0 1 1 0 1 0 1 1 1 1
1 1 1 0 0 0 1 1 1 0 1 0 0 1 0
0 1 0 1 0 0 1 1 0 0 0 0 0 0 1
0 0 1 1 1 1 1 0 0 1 0 0 0 0 0
Memorat

Am zis Mr. Green
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #7 : Martie 05, 2006, 09:14:30 »

2  Think
Memorat
Marius
Nu mai tace
*****

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« Răspunde #8 : Aprilie 07, 2006, 21:15:10 »

Ma chinui de o zi sa trec testele 7 si 10, e ceva special la ele ? Pot sa le rezolv luand numai curbe de 0 , 45 si 90 de grade, nu ?  Eh?


« Ultima modificare: Aprilie 07, 2006, 21:46:31 de către Marius » Memorat

Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #9 : Aprilie 07, 2006, 21:21:34 »

Poti sa o rezolvi doar cu curbe de 0 si 45, fara 90, daca vei considera ca miscarea pe loc cu 45 de grade costa 1.
Memorat
Marius
Nu mai tace
*****

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« Răspunde #10 : Aprilie 08, 2006, 10:12:23 »

Nu sunt sigur daca am rezolvat corect, pentru ca nu trect testele 7 si 10, dar  9 dureaza 0.22 s.
Am incercat sa rezolv problema cam asa: iau numai curbe de 0, 45, 90 de grade. Cand verific vecinii nodului curent si gasesc un cost mai mic sau egal il pun in coada. Coada asta are trei "niveluri", adica daca nodul curent se afla pe nivelul k , atunci cand inserez un nod vecin il pe nivelul (k + dir) % 3, unde dir e 0 daca se continua pe directia respectiva, e 1 daca e o curba de 45 si 2 daca e curba de 90 de grade. Continui pana cand "golesc" nivelul curent, apoi trec la urmatorul. Totul se termina cand toate nivelurile sunt goale.

Putin ajutor!  Very Happy
« Ultima modificare: Aprilie 08, 2006, 10:13:58 de către Marius » Memorat

Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #11 : Aprilie 08, 2006, 11:58:11 »

Ai verificat sa nu adaugi de doua ori un nod in liste? Adica cand ai adaugat un nod intr-o lista pentru prima data, il marchezi ca FOLOSIT si nu il mai adaugi in vreuna din liste si a doua oara.
Memorat
Marius
Nu mai tace
*****

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« Răspunde #12 : Aprilie 08, 2006, 12:14:12 »

Nu gasesc un exemplu, dar daca nu pun un nod de mai multe ori (de cel mult trei ori, deoarece poti intra in el din cel mult trei directii) pot sa continui de aici cu un cost mai mare, depinzand de directie. Cum zici tu iau 50 p.  Think
« Ultima modificare: Aprilie 08, 2006, 12:18:44 de către Marius » Memorat

Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #13 : Aprilie 08, 2006, 12:47:14 »

Pentru fiecare nod tii minte distanta minima cu care ai ajuns la el, si cand vrei sa il adaugi la o lista, il adaugi doar daca indicele real al listei este mai mic decat distanta calculata pana in momentul curent.
Memorat
raula_san
Strain
*

Karma: -23
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #14 : Iunie 19, 2007, 14:28:17 »

Pentru exemplul din enunt, raspunsul nu ar trebui sa fie 11 ? Ionel ia 3 curbe de 90 de grade si una de 135 ... Neutral
Memorat

{oo}
   |
/\/\/\
\/\/\/
lsorin_94
Strain


Karma: -8
Deconectat Deconectat

Mesaje: 23



Vezi Profilul
« Răspunde #15 : Martie 17, 2011, 14:09:44 »

@chris nup, ia doar curbe de 45; iar ultima de pe ultima coloana este de 135
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #16 : Martie 17, 2011, 18:29:16 »

Nu sunt curbe de 135 in exemplu. Ai 4 de 90 si una de 45.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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