Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Hint la problema cu Dinamica!  (Citit de 1842 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
gerd13
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 14



Vezi Profilul
« : Iunie 20, 2015, 14:21:18 »

Avem o matrice N*N. Trebuie sa alegem un sir care are suma maxima cu urmatoarele conditi: pornim de pe prima coloana-> putem merge in fata, fata sus, fata jos. De pe fiecare coloana trebuei sa avem doar un singur element!
ex:
Cod:
4
2 -3 4 -1
-4 -2 15 -7
12 -6 -9 7
3 6 2 5
Daca ma puteti ajuta cu un hint! Am incercat eu cu DP dar nu mi-a iesit!
Multumesc!
Memorat
Cristian1997
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 20



Vezi Profilul
« Răspunde #1 : Iunie 24, 2015, 17:05:38 »

Construiesti o matrice best[ i ][ j ] - suma maxima a unui sir care se termina pe pozitia (i, j)

Cod:
best[i][1] = a[i][1] (prima coloana)

best[i][j] = a[i][j] + max(best[i-1][j-1], best[i][j-1], best[i+1][j-1])

parcurgerea se face pe coloane, nu pe linii

raspunsul este maximul dintre best[ i ][ n ], 1<=i<=n

pentru reconstituire trebuie o matrice auxiliara, pred[ i ][ j ] care retine linia elementului precedent celui de pe pozitia (i, j)
Memorat
gerd13
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 14



Vezi Profilul
« Răspunde #2 : Iunie 26, 2015, 20:22:59 »

Multumesc! Am rezolvat problema! Eu greseam la initializarea primei coloane! Si atunci nici recurenta nu era corecta!  Very Happy Very Happy
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines