infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Harald din Februarie 21, 2015, 14:09:50



Titlul: Reprezentare grafuri recomandata
Scris de: Harald din Februarie 21, 2015, 14:09:50
Bună!

Care este cea mai recomandată formă de reprezentare a grafurilor pentru un concurs precum OJI? În momentul de față folosesc matricea de adiacență, însă nu este chiar economă din punct de vedere al memoriei pentru grafurile mari. De exemplu, dacă la concurs graful poate avea pana la 10.000 noduri, atunci matricea de adiacență (de tipul int) va ocupa aproximativ 200MB memorie, care depăsește cu mult limita de 64MB (asta dacă programul nu dă eroare la rulare din cauza matricei prea mari).

Ce formă de reprezentare îmi recomandați?

Mulțumesc anticipat!


Titlul: Răspuns: Reprezentare grafuri recomandata
Scris de: Robert Badea din Februarie 21, 2015, 15:06:06
De ce mai multe ori cea mai adecvată metodă este lista de adiacență.

Totuși, în unele cazuri, spre exemplu când știi că graful e destul de mic, sau că e dens, poate fi de preferat să folosești matricea.


Titlul: Răspuns: Reprezentare grafuri recomandata
Scris de: Harald din Februarie 21, 2015, 15:13:41
Mulțumesc pentru răspuns! Am să încerc să mă obișnuiesc și cu lista de adiacență până la OJI.

Totuși, am văzut la multe din soluțiile trimise în arhiva de probleme că este folosit un vector din librăria cu același nume. Este doar o altă alternativă de scriere pentru lista de adiacență?


Titlul: Răspuns: Reprezentare grafuri recomandata
Scris de: George Marcus din Februarie 21, 2015, 16:18:09
Este doar o altă alternativă de scriere pentru lista de adiacență?
Da, te scuteste de implementarea manuala.


Titlul: Răspuns: Reprezentare grafuri recomandata
Scris de: Harald din Februarie 21, 2015, 16:20:04
Am înțeles. Mulțumesc pentru clarificări!


Titlul: Răspuns: Reprezentare grafuri recomandata
Scris de: Robert Badea din Februarie 21, 2015, 19:21:05
Biblioteca vector are ceva mai multe aplicații decât folosirea în listele de adiacență. Încearcă să te documentezi mai mult despre ea, și în general despre ceva numit STL (Standard Template Library), îți va fi de mare ajutor la olimpiade.


Titlul: Răspuns: Reprezentare grafuri recomandata
Scris de: Harald din Februarie 21, 2015, 20:43:07
Îți mulțumesc pentru sfat. M-am folosit de containerul queue pentru BFS, însă nu am avut ocazia până acum să mă acomodez și cu vector, însă asta am de gând să fac acum.

Mulțumesc încă odata.
Numai bine!