Pagini recente » Monitorul de evaluare | Diferente pentru utilizator/[email protected] intre reviziile 108 si 148 | Diferente pentru utilizator/[email protected] intre reviziile 128 si 148 | Profil Code_Forces | Diferente pentru problema/algoritm intre reviziile 51 si 52
Nu exista diferente intre titluri.
Diferente intre continut:
Desi nu e student in anul 1 la FMI, Por Costel s-a apucat sa studieze Algoritmica Grafurilor. Astazi, el invata despre alogritmul Bellman-Ford, care calculeaza drumurile minime de la un nod sursa (in cazul de fata, nodul 1) la toate celelalte noduri intr-un graf orientat cu costuri. Por Costel, folosindu-si cunostintele sale minimale de informatica a reusit sa scrie urmatorul cod in C++ ce reprezinta o variatie al algoritmului Bellman-Ford:
_for (int i=1; i <= n; ++i)_
_ d[ i ] = infinit; // GUITZZZ!_
_d[ 1 ] = 0;_
_bool ok = 0;_
_while (ok == 0)_
_{_
_ ok = 1;_
_ for (int i=0; i<E.size(); ++i) // OINC!_
_ if (d[ E[i].x ] + E[i].cost < d[ E[i].y ] )_
_ {_
_ ok = 0;_
_ d[ E[i].y ] = d[ E[i].x ] + E[i].cost; //Imi place porumbul!_
_ }_
_}_
==code(cpp) |
for (int i=1; i <= n; ++i)
d[ i ] = infinit; // GUITZZZ!
d[ 1 ] = 0;
bool ok = 0;
while (ok == 0)
{
ok = 1;
for (int i=0; i<E.size(); ++i) // OINC!
if (d[ E[i].x ] + E[i].cost < d[ E[i].y ] )
{
ok = 0;
d[ E[i].y ] = d[ E[i].x ] + E[i].cost; //Imi place porumbul!
}
}
==
Observam mai multe deficiente in codul de mai sus. Pe langa documentatia rudimentara, mai avem faptul ca Por Costel isi retine graful printr-un vector de muchii (vectorul E). Dar cel mai rau probabil este faptul ca programul este LENT !
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.