Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2014-04-24 16:17:26.
Revizia anterioară Revizia următoare
Revizia anterioară Revizia următoare
Spargere2
Vom reţine un vector auxiliar cu următoarea semnificaţie:
- d[i] = suma maximă ce poate fi obţinută folosind primele i seifuri
Vom parcurge seifurile de la 1 la N, iar pentru fiecare seif i, avem câteva opţiuni:
- Deschid seiful i şi le ignor pe cele de dinainte.
- Deschid seiful i şi iau şi suma maximă obţinută prin folosirea primelor i - k seifuri.
- Nu deschid seiful i, deci iau suma maximă obţinută prin folosirea celor dinaintea sa, primelor i - 1 seifuri.
În concluzie, vom avea:
- d[i] = max( v[i], d[i - k] + v[i], d[i - 1] )
Rezultatul se găseşte în d[n].