Mai intai trebuie sa te autentifici.
Diferente pentru problema/cuplaj1 intre reviziile #23 si #24
Nu exista diferente intre titluri.
Diferente intre continut:
O solutie mai rapida si mult mai usor de implementat este cea care se bazeaza pe lanturi augmentative: Pentru orice $i$ din $A$ definim $R{~i~}$ ca fiind nodul de care este acesta cuplat in $B$. De asemenea, pentru orice nod $i$ din $B$, definim $L{~i~}$ ca fiind nodul de care este acesta cuplat in $A$. Initial, vectorii au valoarile $0$. Pentru fiecare nod necuplat din $A$ apelam functia recursiva $pairup$ care va functiona astfel:
1.daca exista un vecin necuplat de-ai lui $i$ ({$R{~i~} = 0$}), il vom cupla cuacesta;2.daca nu, incercam sa fortam cuplarea lui $i$ (daca se poate) cu un vecin$j$deja cuplat; va trebui sa recuplam nodul de care era anterior legat $j$ si vom apela recursiv functia $pairup$, de data aceasta pentru {$L{~j~}$}. La final, valoarea *cuplajului maximal* va fi egala cu numarul de noduri $i$ cuplate, adica pentru care $R{~i~} > 0$.
# daca exista un vecin necuplat de-ai lui $i$ ({$R{~i~} = 0$}), il vom cupla cu unul dintre ei; # daca nu, incercam sa fortam cuplarea lui $i$ (daca se poate) cu un vecin deja cuplat (fie el $j$); deci, va trebui sa recuplam nodul de care era anterior legat $j$ si vom apela recursiv functia $pairup$, de data aceasta pentru {$L{~j~}$}. La final, valoarea *cuplajului maximal* va fi egala cu numarul de noduri $i$ cuplate, adica cele pentru care $R{~i~} > 0$.
Pentru clarificarea algoritmului puteti consulata "sursa":http://infoarena.ro/job_detail/186901?action=view-source.