•wefgef
|
|
« Răspunde #25 : Aprilie 07, 2008, 19:16:50 » |
|
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•toni2007
|
|
« Răspunde #26 : Aprilie 07, 2008, 19:22:07 » |
|
e BF cu heapuri?
|
|
|
Memorat
|
|
|
|
•bogdan2412
|
|
« Răspunde #27 : Aprilie 07, 2008, 19:27:49 » |
|
vectorii cu "heap" nu sunt folositi si probabil au ramas de la sursa in care a facut dijkstra
|
|
|
Memorat
|
|
|
|
|
•amadaeus
Client obisnuit
Karma: 28
Deconectat
Mesaje: 93
|
|
« Răspunde #29 : Aprilie 22, 2008, 21:13:08 » |
|
In principiu, bagi un nod in coada numai daca nu este deja acolo. Vad ca tu bagi un nod in coada la fiecare relaxare. Nu stiu daca WA e de la asta, dar.. pune si conditia asta prin sursa
|
|
|
Memorat
|
"one of these days I'm going to cut you into little pieces..."
|
|
|
•toni2007
|
|
« Răspunde #30 : Aprilie 23, 2008, 09:02:52 » |
|
Nup nu e de la asta. cu chestia ta iau doar 10 puncte pe testul 8. Eu bag un nod in coada de mai multe ori doar daca costul obtinut pana atunci este mai mic decat costul obtinut mai devreme, si atunci trebuie sa reactualizez si toti vecinii lui.
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #31 : Aprilie 23, 2008, 10:32:44 » |
|
Pai nu trebuie sa bagi un nod in coada decat daca nu este deja acolo.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•amadaeus
Client obisnuit
Karma: 28
Deconectat
Mesaje: 93
|
|
« Răspunde #32 : Aprilie 23, 2008, 10:42:05 » |
|
M-am uitat inca o data peste sursa ta si am vazut ca tu tii o coada de structuri cu nodul si distanta pana la el. Am impresia ca aici complici lucrurile; eu propun urmatoarea varianta: tii un vector dist[ x ] in care retii distanta minima (pana in prezent) pana la nodul x, iar in coada bagi numai indicii nodurilor, nu si distantele. Din nou, bagi un nod in coada numai daca nu este deja acolo. Asadar, transformarile intr-un pseudo-C ar arata cam asa: coada.push( 1 ); incoada[1] = 1;
while( !coada.empty() ) { u = coada.pop(), incoada[u] = 0; for( v vecin al lui u ) if( dist[v] > dist[u] + cost(u,v) ) { dist[v] = dist[u] + cost(u,v); if( incoada[v] == 0 ) incoada[v] = 1, coada.push(v); } }
|
|
|
Memorat
|
"one of these days I'm going to cut you into little pieces..."
|
|
|
•wefgef
|
|
« Răspunde #33 : Aprilie 23, 2008, 11:26:34 » |
|
Am scris acum o sursa cu bellman-ford. Poti sa te uiti peste ea daca vrei.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•amadaeus
Client obisnuit
Karma: 28
Deconectat
Mesaje: 93
|
|
« Răspunde #34 : Aprilie 23, 2008, 11:36:36 » |
|
Sunt mai rapide streamurile decat ma asteptam... Eu am luat mai demult, pe aceeasi idee, 90 cu citire standard. La ONI se va folosi tot g++ 4.2? LE: Nop, citat de pe site-ul oficial: 5. Linux g++ 3.2.2 compilator pentru limbajul C++
|
|
|
Memorat
|
"one of these days I'm going to cut you into little pieces..."
|
|
|
•toni2007
|
|
« Răspunde #35 : Aprilie 23, 2008, 12:57:56 » |
|
@wefgef nu prea stiu c++ si chestii cu push si iteratori @amadaeus dap. asta pt ca se foloseste evalul . campion care merge doar pe gcc vers 3.
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #36 : Aprilie 23, 2008, 13:05:10 » |
|
Pai de ce nu inveti? Crezi ca e asa mare filozofie? Exact, ce anume nu intelegi din sursa mea?
|
|
« Ultima modificare: Aprilie 23, 2008, 14:24:44 de către Andrei Grigorean »
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•toni2007
|
|
« Răspunde #37 : Aprilie 23, 2008, 13:11:29 » |
|
cum e cu iteratorii
|
|
|
Memorat
|
|
|
|
•amadaeus
Client obisnuit
Karma: 28
Deconectat
Mesaje: 93
|
|
« Răspunde #38 : Aprilie 23, 2008, 13:28:06 » |
|
Iteratorii sunt un fel de pointeri, cu care poti parcurge un container (de exemplu un vector). Iti recomand cartea "STL Tutorial and Reference Guide", de Musser, Derge si Saini - dupa bucata introductiva iti vei forma o parere destul de clara asupra STL-ului, iar acesta va fi un pas mare inainte Daca nu gasesti in alta parte, am uploadat-o aici.
|
|
|
Memorat
|
"one of these days I'm going to cut you into little pieces..."
|
|
|
•wefgef
|
|
« Răspunde #39 : Aprilie 23, 2008, 14:23:21 » |
|
amadaeus. Ceea ce fac eu acolo cu iteratorul este parcurgerea listei de vecini. As fi putut sa fac asa: for (int i = 0; i < int(G[nod].size()); ++i)
iar in loc de it->first as fi avut G[nod][ i ].first si in loc de it->second as fi avut G[nod][ i ].second.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•toni2007
|
|
« Răspunde #40 : Aprilie 25, 2008, 18:10:29 » |
|
Am reusit in sfarsit sa iau 100 dar cu citire cu streamuri ( cu citire in c imi crapa)... si testele par ciudate: imi crapa mozilla cand intru in ele LE: gata... am scos 100 si cu citire in c (si 428 de ms pe cel mai mare test) cu bellman ford cu coada http://infoarena.ro/job_detail/185953si se pare ca sunt singurul cu c care a luat 100 deci se poate si in c [editat de moderator: nu posta de mai multe ori consecutiv, foloseste edit]
|
|
« Ultima modificare: Aprilie 26, 2008, 15:33:49 de către Bogdan Tataroiu »
|
Memorat
|
|
|
|
•amadaeus
Client obisnuit
Karma: 28
Deconectat
Mesaje: 93
|
|
« Răspunde #41 : Aprilie 26, 2008, 14:56:06 » |
|
Daca parsezi citirea, se poate in C si cu Dijkstra cu heapuri ( http://infoarena.ro/job_detail/186013)
|
|
|
Memorat
|
"one of these days I'm going to cut you into little pieces..."
|
|
|
|
•bogdan2412
|
|
« Răspunde #43 : Aprilie 26, 2008, 15:31:23 » |
|
oricum probabil exista destule surse trimise cu cpp care ar compila in c si ar lua 100
|
|
|
Memorat
|
|
|
|
•Cosmin
|
|
« Răspunde #44 : Mai 27, 2008, 07:11:07 » |
|
@Airinei
Auzi, ma uitam la sursa ta ce e linkata din problema si vad ca folosesti set cand puteai folosi priority queue fara nici o problema. Nu folosesti nimic din avantajele setului aici ...
Si inca o chestie, cred ca faci chestii redundante pentru ca nu faci lazy deletion. Inainte de a folosi o valoare din heap poti sa testezi daca valoarea ce o folosesti in relaxari. Trebuie sa testezi if (val > d[ x ]) continue;
|
|
« Ultima modificare: Mai 27, 2008, 07:53:32 de către Stefan Istrate »
|
Memorat
|
|
|
|
•toni2007
|
|
« Răspunde #45 : Iunie 02, 2008, 08:43:46 » |
|
am trimis de mai multe ori aceeasi sursa, a doua oara cu niste comentarii in ea, http://infoarena.ro/job_detail/193067http://infoarena.ro/job_detail/193068si obtin timpi foarte diferiti... gen 500 si 472. stiam ca de obicei timpul poate varia cu cel mult 8 ms dar poate chiar asa de mult? Adica 30 de ms? Poate fi de la alocarea dinamica a memoriei? Need help...
|
|
|
Memorat
|
|
|
|
•stef2n
|
|
« Răspunde #46 : Iunie 02, 2008, 13:44:42 » |
|
E nesemnificativa diferenta La problemele cu limite mari de timp (3-5 secunde) mi s-a intamplat sa am diferente pe aceeasi sursa de 50-100 ms.
|
|
|
Memorat
|
Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
|
|
|
•mihai0110
Strain
Karma: 6
Deconectat
Mesaje: 20
|
|
« Răspunde #47 : Februarie 09, 2009, 18:20:48 » |
|
am incercat cu bf cu coada si vad ca primesc tle desi sunt sub 0.5 sec 10 472ms 4792kb Time limit exceeded. 0 sau 10 488ms 4788kb Time limit exceeded. 0 in timp ce pe sursa lui wefgef 10 488ms 4564kb OK 10
|
|
« Ultima modificare: Februarie 09, 2009, 18:26:43 de către Bivol Mihai »
|
Memorat
|
|
|
|
•sima_cotizo
|
|
« Răspunde #48 : Februarie 09, 2009, 18:38:59 » |
|
Evaluatorul are o mica eroare in masurarea timpilor de executie afisati, dar fii sigur ca algoritmul tau este oprit atunci cand depaseste timpul.
|
|
|
Memorat
|
|
|
|
•c_e_manu
|
|
« Răspunde #49 : Februarie 26, 2009, 18:26:07 » |
|
poate cineva sa arunce o privire aici si sa-mi spuna unde e greseala... am incercat in nu mai stiu cate feluri si tot nu reusesc sa gasesc ce nu e in regula... mersi! http://infoarena.ro/job_detail/267069LE: am marit coada si intra pe 9 teste... pe al 10-lea iau TLE... o sa implementez coada dinamic si atunci sper sa intre... are totusi cineva vreun pont cum sa nu bag de mai multe ori acelasi nod in coada, in afara de STL?
|
|
« Ultima modificare: Februarie 26, 2009, 19:24:15 de către Emanuel Cinca »
|
Memorat
|
|
|
|
|