[Algoritmo de programación dinámica] Escenarios y plantillas de aplicaciones de programación dinámica

Programación dinámica, inglés: Programación dinámica, conocida como DP, si un problema tiene muchos subproblemas superpuestos, usar la programación dinámica es lo más efectivo. Cada estado en la programación dinámica debe derivarse del estado anterior, que es diferente de codicioso. Codicioso no tiene derivación de estado, pero selecciona directamente lo mejor del local.

Problemas resueltos por la programación dinámica

La programación dinámica generalmente puede resolver los siguientes problemas:

  • Problemas básicos : números de Fibonacci, subir escaleras, diferentes caminos, divisiones de enteros, diferentes árboles de búsqueda binaria, etc.
  • Problema de mochila : 01 mochila, mochila completa, mochila múltiple, etc.
  • Pelear y robar en viviendas : robar y robar en viviendas, robar y robar en viviendas||, robar y robar en viviendas|||etc.
  • Preguntas sobre acciones : el mejor momento para comprar y vender acciones, etc.
  • Problemas de subsecuencia : subsecuencia (discontinua), subsecuencia (continua), distancia de edición, palíndromo, etc.

Plantilla de programación dinámica cinco pasos

  • 1. Determine el significado de la matriz dp y el subíndice.
  • En segundo lugar, determine la fórmula recursiva.
  • 3. Cómo inicializar la matriz dp.
  • Cuarto, determine el orden transversal.
  • 5. Dé un ejemplo para deducir la matriz dp (imprima la matriz dp).

Depuración de programación dinámica

  • ¿Esta pregunta ha dado un ejemplo para derivar la fórmula de transición estatal?
  • ¿Imprimiste el registro de la matriz dp?
  • ¿La matriz dp impresa es la misma que se esperaba?

Supongo que te gusta

Origin blog.csdn.net/qq_44033208/article/details/132422324
Recomendado
Clasificación