|
Titlul: Problema programare dinamica Scris de: FMI Ekart Dragos-Ioan din Ianuarie 26, 2012, 14:28:51 Am o mica problema de a optimiza codul ca sa imi dea raspunsul corect:
Sa se gaseasca secventa de lungime maxima care este lexicografic cel mai mare Exemplu IN.in 7145 847835 out.out 7 5 in2.in 4175 874835 out2.out 7 5 Eu am facut codul pentru partea de programare dinamic dar nu stiu cum sa fac si partea de lexicografie Cod: #include<iostream> Titlul: Răspuns: Problema programare dinamica Scris de: Parfene Narcis din Ianuarie 26, 2012, 14:50:58 Banuiesc din ce ai scris ca te intereseaza subsirul comun de lungime maxima cel mai mare lexicografic.
Ei bine, ca sa rezolvi corect trebuie sa construiesti matricea bottom-up, adica il calculezi pe a(i,j) in functie de a[i+1,j] si a[i,j+1]. Pentru constituirea solutiei maxime lexicografic pornesti acum top-down, adica de la pozitia (1,1) la (m,n) Titlul: Răspuns: Problema programare dinamica Scris de: FMI Ekart Dragos-Ioan din Ianuarie 26, 2012, 15:29:53 dar nu se intampla aceasi problema si dac plec din 1,1 sau din n,m
Ca vei acea la stanga o valoare si la dreapta tot la valorea si atunci trebuie sa alegi elemntul cu valoare mai mare Titlul: Răspuns: Problema programare dinamica Scris de: Parfene Narcis din Ianuarie 26, 2012, 19:39:11 Nu se intampla la fel. Daca vreau minim sau maxim lexicografic, plec de la stanga la dreapta cu comparatiile si in niciun caz invers. Gandeste-te ca asa e si cu 2 siruri. Cand le compari lexicografic pleci de la stanga la dreapta
Titlul: Răspuns: Problema programare dinamica Scris de: FMI Ekart Dragos-Ioan din Ianuarie 26, 2012, 21:06:26 Sa zicem ca asa e corect din punctul de vedere, dar eu construiesc o matrice care in directia stanga imi da o valoare si in directia jos imi da aceasi valoare acum in ce sens merg
Titlul: Răspuns: Problema programare dinamica Scris de: Razvan Idomir din Martie 22, 2013, 11:52:47 A gasit cineva o solutie si sa o poata explica? Am incercat cum a spus Narcis, insa nu am reusit sa o fac sa mearga.
|