[Algoritmo de programação dinâmica] Cenários e modelos de aplicativos de programação dinâmica

Programação dinâmica, inglês: Programação Dinâmica, conhecida como DP, se um problema tiver muitos subproblemas sobrepostos, usar a programação dinâmica é o mais eficaz. Cada estado na programação dinâmica deve ser derivado do estado anterior, o que é diferente do ganancioso.O ganancioso não tem derivação de estado, mas seleciona diretamente o melhor do local.

Problemas resolvidos pela programação dinâmica

A programação dinâmica geralmente pode resolver os seguintes problemas:

  • Problemas básicos : números de Fibonacci, subir escadas, caminhos diferentes, divisões de inteiros, diferentes árvores de busca binária, etc.
  • Problema de mochila : 01 mochila, mochila completa, mochila múltipla, etc.
  • Brigar e roubar casas : roubar e roubar casas, roubar e roubar casas||, roubar e roubar casas|||etc.
  • Perguntas sobre ações : o melhor momento para comprar e vender ações, etc.
  • Problemas de subsequência : subsequência (descontínua), subsequência (contínua), distância de edição, palíndromo, etc.

Modelo de programação dinâmica cinco etapas

  • 1. Determine o significado da matriz dp e do subscrito.
  • Em segundo lugar, determine a fórmula recursiva.
  • 3. Como inicializar o array dp.
  • Quarto, determine a ordem de passagem.
  • 5. Dê um exemplo para deduzir o array dp (imprima o array dp).

Depuração de programação dinâmica

  • Esta questão deu um exemplo para derivar a fórmula de transição de estado?
  • Você imprimiu o log do array dp?
  • A matriz dp impressa é a mesma esperada?

Acho que você gosta

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