🧩 Programación Dinámica

Resuelve problemas de decisión secuencial descomponiéndolos en subproblemas más pequeños. Incluye Mochila 0/1 y Asignación óptima de recursos entre proyectos.

📚 Principio de optimalidad de Bellman

La Programación Dinámica resuelve un problema construyendo una tabla de soluciones óptimas a subproblemas cada vez más grandes. En la Mochila 0/1, dp[i][w] almacena el mejor valor alcanzable usando los primeros i ítems con capacidad w; cada celda se calcula a partir de celdas ya resueltas, evitando recomputar soluciones.

dp[i][w] = max( dp[i-1][w], dp[i-1][w-pesoᵢ] + valorᵢ )
Tipo de problema
Tabla DP