Salut!
Ma uitam pe niste probleme de pe la nationale si am gasit o implementare pentru suportul minim...numai ca nu prea o inteleg
Imi puteti pune va rog frumos niste begin-uri si niste end-uri?
Suportul minim se poate calcula în modul următor:
// presupunem că a fost calculat deja un cuplaj maxim
// S este suportul minim, iniţial mulţime vidă
// C(j-dreapta) e nodul i-stânga cu care e cuplat j-dreapta (daca există)
procedura calculează(i-stânga) // doar pt. noduri care nu sunt în suport
pentru j-dreapta vecin al lui i-stânga
dacă j-dreapta nu e în S
S <- S+{j-dreapta}
S <- S-{ C(j-dreapta) } // există mereu C(j-dreapta)
calculează( C(j-dreapta) )
pentru fiecare i din stânga
daca i e cuplat
S <- S+{i}
pentru fiecare i din stânga
daca i nu e cuplat
calculează(i)
Nu inteleg ce ar trebui sa fac al doilea for (cel de la mijloc) si cand ar trebuii folosit... sa pot rula programu sa vad cum se comporta; apoi imi dau eu seama