Revizia anterioară Revizia următoare
Soluţia problemei Shoturi
Soluţie backtracking - 10 puncte
Generăm toate variantele posibile ale vectorului
pentru care
. Această soluţie obţine 0 sau 10 puncte în funcţie de implementarea backtrackingului, care ar avea complexitatea
amortizat.
Soluţie N3 - 50 puncte
Această soluţie presupune tehnica programării dinamice. Vom folosi matricea dp[n][k], pentru care:
$dp[i][j] = care este suma potenţelor tuturor amestecurilor posibile ingerând
shoturi păhărele din primele
substanţe interzise sucuri$.
De aici deducem recurenţa: ![\displaystyle \ dp[i][j]=\sum_{x=0}^{j-1} dp[i-1][x]*(j-x)*hazard[i] + dp[i-1][j] \displaystyle \ dp[i][j]=\sum_{x=0}^{j-1} dp[i-1][x]*(j-x)*hazard[i] + dp[i-1][j]](https://www.infoarena.ro/static/images/latex/350bc00be9751338c5f93cd121fb40d3_13.67783pt.gif)
De ce? Pentru că, din cum am definit dinamica, $dp[i-1][x] = suma potenţelor tuturor amestecurilor posibile ingerând
păhărele din primele
sucuri$
