Am si eu o nelamurire despre cum se formeaza graful. Eu am incercat sa parcurg toate nodurile de la 0->2
n-1 si pentru fiecare nod aflu vecini are cam asa:
for ( int i = 0; i < ( 1 << N ); ++i )
{
for ( int j = 1; j <= M; ++j )
{
int nod = i | sarje[j].nr;
node x = { nod, sarje[j].P };
G[i].push_back( x );
}
}
Problema este ca atunci cand fac Dijkstra de la 0 la 2
n-1, pe exemplu imi da 3(de la nodul 0 folosind sarja 1 merge in 5 si din 5 folosind sarja 2 merge in 7). Am gresit modul de constructie al grafului sau imi scapa altceva...?