He empezado DP. No lo estoy obteniendo de la profundidad, no estoy obteniendo confianza en él. ¿que puedo hacer?

En primer lugar, debe comprender en qué preguntas se aplica DP. Y créanme si entienden esto, la mitad del trabajo está hecho.

DP tiene dos requisitos básicos:
1. Superposición de subproblemas: establece que no hay dos subproblemas que sean exclusivos.
2. Subestructura óptima: Estados que suponen que si conoce la solución a un subproblema y puede encontrar la solución óptima para el problema original, esta propiedad es válida.

Luego, una vez que decida que es un problema de DP, hay tres pasos.

1. Encuentra la solución recursiva para el problema. (Todos los problemas de DP tienen soluciones recursivas)
2. Encuentre el caso base para ello.
3. Ahora intente convertir el código en código DP colocando bucles en lugar de recurrencia e intente considerar de abajo hacia arriba.

También puede hacerlo de arriba hacia abajo, se llama memorización.
Siga el siguiente tutorial:
http://www.codechef.com/wiki/tut…

Este es probablemente el mejor tutorial en la web. Repase los problemas e intente resolverlos. Estoy seguro de que encontrarás muchas cosas interesantes aquí 🙂

Tenía un muy buen pdf para el tutorial DP, si lo encuentro seguramente lo compartiré aquí.

Hay algunas cosas que recomendaría:
1) Mire la conferencia OCW-MIT sobre programación dinámica
2) Lea los tutoriales en TopCoder que tratan sobre programación dinámica
3) Intenta resolver las preguntas mencionadas en el tutorial

Una cosa realmente importante mientras aprende la programación dinámica es aprender a escribir programas de arriba hacia abajo. Muchos programadores que inicialmente comienzan con el área intentan descifrar todo en forma de una ecuación recursiva en lugar de pensar en términos de casos básicos y pasos iterativos. Ambas líneas de pensamiento son importantes. A menudo, de arriba hacia abajo es más fácil de escribir y resolver, por lo tanto, recomendaría que intentes hacerlo.

La respuesta de Michal Danilák a ¿Hay buenos recursos o tutoriales para la programación dinámica (DP), además del tutorial de TopCoder?