|
|
•gabor_oliviu1991
|
 |
« Răspunde #2 : Ianuarie 19, 2009, 22:58:37 » |
|
in exemplul problemei, avem muchie de la 2 la 2? defapt ramanem pe nodul 2 ? sau nu am inteles eu bine.
|
|
|
Memorat
|
|
|
|
•wefgef
|
 |
« Răspunde #3 : Ianuarie 20, 2009, 00:26:29 » |
|
Da, grafurile pot contine muchii multiple intre 2 noduri sau self-loops.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•mariusdrg
Client obisnuit

Karma: 70
Deconectat
Mesaje: 59
|
 |
« Răspunde #4 : Februarie 20, 2009, 14:43:39 » |
|
Ar mai fi inca o metoda usoara si demna de mentionat care are in componenta un singur dfs. O astfel de solutie se poate vedea aici: http://infoarena.ro/job_detail/263481. Aceasta ia doar 50 de puncte din cazua ca foloseste un dfs(intrece marimea stivei din cate observ) dar e usor de inteles ce face si usor de implementat. Practic ceea ce face sursa mea e: fac un dfs prin tot graful si am un vector de vizitat pe muchii(nu pe noduri), In data ce nu mai pot merge nicaieri tiparesc nodul. P.S. Scuza-ti implementarea urata , dar e facuta in borland(vine oji.....).
|
|
|
Memorat
|
|
|
|
•amadaeus
Client obisnuit

Karma: 28
Deconectat
Mesaje: 93
|
 |
« Răspunde #5 : Februarie 21, 2009, 00:23:33 » |
|
fac un dfs prin tot graful si am un vector de vizitat pe muchii(nu pe noduri), In data ce nu mai pot merge nicaieri tiparesc nodul.
Algoritmul este practic acelasi: construiesc un ciclu si ma intorc pe el, intercaland toate ciclurile suplimentare. Implementarea este putin diferita (marcajele pe muchii) si merita mentionata intr-adevar ca si alternativa; ar fi ideal insa daca ai implementa si o varianta nerecursiva folosind aceeasi idee, pentru a avea o sursa de 100p, care se poate incadra in articolul de solutii. 
|
|
|
Memorat
|
"one of these days I'm going to cut you into little pieces..."
|
|
|
•stocarul
|
 |
« Răspunde #6 : Februarie 21, 2009, 12:11:46 » |
|
Am implementat eu un dfs nerecursiv pt problema asta... http://infoarena.ro/job_detail/264061Insa din pacate nu intra in timp pe testele 8 si 10  L.E.: am facut o mica modificare si am luat suta 
|
|
« Ultima modificare: Februarie 22, 2009, 10:59:26 de către Cosmin Mihai Tutunaru »
|
Memorat
|
|
|
|
•andr33a
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #7 : Martie 07, 2009, 12:48:43 » |
|
Daca exista un ciclu eulerian pt o parte din noduri, iar restu` nodurilor sunt izolate, se afiseaza ciclu` sau -1? 
|
|
|
Memorat
|
|
|
|
•andrei-alpha
Client obisnuit

Karma: 103
Deconectat
Mesaje: 91
|
 |
« Răspunde #8 : Martie 07, 2009, 12:53:27 » |
|
-1 Ciclul trebuie sa fie pentru toate nodurile.
|
|
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #9 : Martie 07, 2009, 14:58:25 » |
|
-1 Ciclul trebuie sa fie pentru toate nodurile.
Nu. Ciclul trebuie sa traverseze toate muchiile o singura data si nu are nici o restrictie privind nodurile. Daca exista noduri izolate, acestea nu intra in calcul.
|
|
|
Memorat
|
Am zis 
|
|
|
•wefgef
|
 |
« Răspunde #10 : Martie 07, 2009, 15:50:37 » |
|
Eu cred ca enuntul problemei ar trebui revizuit.
Un graf se numeste eulerian daca si numai daca este conex si gradul fiecarei nod este par.
|
|
|
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 #11 : Martie 08, 2009, 01:20:04 » |
|
Eu cred ca enuntul problemei ar trebui revizuit.
Un graf se numeste eulerian daca si numai daca este conex si gradul fiecarei nod este par.
Se poate discuta mult pe marginea definitiei; fiecare autor al unei lucrari de teoria grafurilor are particularitatile sale in definitii sau notatii. In cazul de fata, imi pare irelevanta orice obiectie, existand o corespondenta biunivoca intre multimea grafurilor care admit un ciclu eulerian si multimea grafurilor conexe ale caror noduri au toate gradele pare (este una dintre teoremele lui Euler). Din considerente practice, mi se pare ca a defini grafurile euleriene ca fiind acele grafuri cu proprietatea P1, si a demonstra apoi ca ele au (necesar si suficient) proprietatea P2, este acelasi lucru cu a interschimba P1 si P2 in fraza anterioara. Din considerente teoretice, diferenta aceasta poate deveni importanta, insa, asa cum am spus, lucrarile de specialitate jongleaza prea mult cu termenii pentru a putea avea pretentia unei singure notatii corecte; in final, ramane doar o problema de terminologie.
|
|
|
Memorat
|
"one of these days I'm going to cut you into little pieces..."
|
|
|
•razyelx
Client obisnuit

Karma: 0
Deconectat
Mesaje: 82
|
 |
« Răspunde #12 : Martie 11, 2009, 20:20:42 » |
|
imi explicati si mie va rog "La fiecare pas in construirea ciclului, vom alege intotdeauna muchiile de intoarcere inaintea muchiilor de arbore." . Muchiile de intoarcere is alea care formeaza ciclu? Si alea de arbore care nu formeaza? De unde imi pot da seama care muchii is care? Explicatie e putin succinta.
|
|
|
Memorat
|
|
|
|
•Florian
|
 |
« Răspunde #13 : Martie 11, 2009, 21:12:28 » |
|
Acolo se refera la arborele DFS. Atunci cand faci parcurgerea normala DFS(), se creaza de fapt un arbore. Sa luam algoritmul concret: void dfs(int x) { viz[x] = 1; pt fiecare vecin a lui x { if(viz[vecin] == 0) dfs(vecin); // asta este muchie de arbore else ; // => viz[vecin]=1 => muchia (x, vecin) este muchie de intoarcere si inchide un ciclu } }
Ia-ti un graf pe hartie si deseneaza-ti nodurile si muchiile exact in ordinea parcurgerii DF, si o sa intelegi cum sta treaba. Succes! 
|
|
« Ultima modificare: Martie 12, 2009, 08:58:59 de către Marcu Florian »
|
Memorat
|
|
|
|
•otilia_s
Strain
Karma: 0
Deconectat
Mesaje: 12
|
 |
« Răspunde #14 : Aprilie 03, 2009, 13:20:48 » |
|
Eu am rezolvat problema fara sa utilizez STL, alocand cu realloc , dar obtin SIGSEGV pe 3 teste. Nu inteleg de ce, pentru ca am folosit aceeasi metoda ca si in rezolvarea oficiala, deci ar trebui sa foloseasca la fel de multa memorie. Puteti sa va uitati si pe sursa mea, va rog: http://infoarena.ro/job_detail/295583?action=view-sourceMultumesc! 
|
|
|
Memorat
|
|
|
|
•andrei-alpha
Client obisnuit

Karma: 103
Deconectat
Mesaje: 91
|
 |
« Răspunde #15 : Aprilie 03, 2009, 18:18:19 » |
|
Inserează citat Eu am rezolvat problema fara sa utilizez STL, alocand cu realloc , dar obtin SIGSEGV pe 3 teste. Nu inteleg de ce, pentru ca am folosit aceeasi metoda ca si in rezolvarea oficiala, deci ar trebui sa foloseasca la fel de multa memorie. Puteti sa va uitati si pe sursa mea, va rog: http://infoarena.ro/job_detail/295583?action=view-sourceMultumesc! Smile Poti sa iei testele de la atasamente, le rulezi la tine si vezi exact unde crapa. 
|
|
|
Memorat
|
|
|
|
•Procopliuc
Strain
Karma: 2
Deconectat
Mesaje: 6
|
 |
« Răspunde #16 : Mai 07, 2009, 21:50:27 » |
|
De ce-mi da killed by signal daca folosesc liste liniare?  Pe windows la primul test de la atasamente imi merge bine,iar la evaluare imi da killed by signal 
|
|
|
Memorat
|
|
|
|
•Florian
|
 |
« Răspunde #17 : Mai 07, 2009, 21:58:43 » |
|
scanf ("%i%i",&x,&y);
Incearca sa citesti cu " %d ". Poate de aici e. Daca nu, fii atent cum faci legaturile alea. E destul de dubioasa sursa ta. Nu vad unde simulezi stiva, si mi se pare ciudat ca aloci noduri noi (apoi le stergi) de fiecare data cand apelezi ciclu() . Si un sfat prietenesc: ordoneaza-ti putin sursele (ca aspect), ca asa nu intelege nimeni nimic.  Spor!
|
|
|
Memorat
|
|
|
|
•marcelcodrea
|
 |
« Răspunde #18 : Mai 07, 2009, 22:04:20 » |
|
Linux are o gestiune impecabilă a memoriei, spre deosebire de Windows unde în cazul în care scăparea nu este foarte mare, execuţia o să pară în regulă şi o să întoarcă 0. De aceea nu apare nimic suspect când rulezi de acasă. Primeşti "Killed by signal" cel mai probabil din cauza unor greşeli la operaţiile cu liste, accesezi ceva nealocat în prealabil. Pentru a spori lizibilitatea surselor (aşa cum ai structurat-o, sursa e indescifrabilă pentru oricine care nu a scris-o, adică pentru noi toţi), poţi folosi CodeBlocks care oferă posibilitatea indentării lor urmând un anumit tipar printr-un singur click.
|
|
|
Memorat
|
Imperiile coloniale au murit... Germania Nazistä a murit... Uniunea Sovieticä a murit... Si nici Uniunea Europeanä nu se simte prea bine
|
|
|
•Procopliuc
Strain
Karma: 2
Deconectat
Mesaje: 6
|
 |
« Răspunde #19 : Mai 08, 2009, 18:31:39 » |
|
|
|
|
Memorat
|
|
|
|
•devilkind
|
 |
« Răspunde #20 : Mai 10, 2009, 13:45:27 » |
|
Te inseli  . Uita-te si tu la sursele celorlalti concurenti si vezi cum au implementat  .
|
|
|
Memorat
|
|
|
|
•Procopliuc
Strain
Karma: 2
Deconectat
Mesaje: 6
|
 |
« Răspunde #21 : Mai 10, 2009, 14:06:42 » |
|
care-i greseala?  Pe windows imi merge bine 
|
|
|
Memorat
|
|
|
|
•popoiu.george
|
 |
« Răspunde #22 : Februarie 05, 2010, 13:59:16 » |
|
Iau 80 pct, iar pe testele 2 si 4 iau "fisier de iesire corupt!" si nu inteleg de la ce ar putea fi. Stie cineva? 
|
|
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #23 : Februarie 06, 2010, 07:05:00 » |
|
M-am uitat in evaluator si acest mesaj apare cand ce afisezi nu respecta formatul cerut. Ori afisezi prea multe/prea putine noduri ori afisezi varfuri care nu apartin intervalului [1, N] (in situatia in care exista solutie).
|
|
|
Memorat
|
Am zis 
|
|
|
•APOCALYPTO
|
 |
« Răspunde #24 : Februarie 10, 2010, 17:29:35 » |
|
Salut! Am si eu o intrebare. Ciclul eulerian nu iese din prima decat in cazul in care noduri critice? (cum e in exemplul de mai sus nodul 3 ) a iesit din prima= apelam doar o data functia euler si avem raspunsul
|
|
« Ultima modificare: Iunie 16, 2010, 22:59:58 de către Dragos »
|
Memorat
|
|
|
|
|