|
Titlul: Program1 .campion Scris de: Vidrean Mihai din Martie 09, 2012, 19:24:49 Am niste intrebari la urmatoarea problema:http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=570 (http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=570).
1.De ce pentru testul 2 imi da 2 inloc de 1.(nu vad greseala pt. ca eu vizitez nodul 1in BF). 2.Cum pot rezolva problema altfel decat cu matrice de adiacenta??(am incercat cu o matrice bool da pica la memorie e prea mare 10000*10000,am auzit ca se poate cu ceva liste de vecini dar nu stiu sigur ce sunt). In programul meu eu dau marchez arc intre i si i+1 daca citesc comanda "EXECUTA" si arc intre i si nr daca citesc comanda "SALT". Dupa care fac o parcurgere BF si nodurile care raman nevizitate reprezinta instructiunile care nu se executa niciodata. Cod: #include<fstream> Titlul: Răspuns: Program1 .campion Scris de: Sorin Rita din Martie 11, 2012, 00:24:39 Da 2 pentru ca instructiunile 5 si 7 nu se executa.E foarte ineficient sa retii graful prin matricea de adiacenta. Gandeste-te ca unele noduri pot avea doar un vecin si tu aloci memorie pentru 10000. Listele de vecini sunt niste liste care pentru fiecare nod retin vecinii acestuia. Pentru implementare poti folosi vector din stl :
Cod: vector<int> a[10005]; In rest ideea ta e buna. Titlul: Răspuns: Program1 .campion Scris de: Vidrean Mihai din Martie 11, 2012, 15:03:38 Functioneaza perfect cum ai zis tu 8).Mersi de ajutor :winner1:
|