¿Cómo funciona el bucle dentro de un DP recursivo?

Es similar a una función DP sin bucle. Si comprende los conceptos de DP, la siguiente explicación debería ser fácil de obtener:

En DP, tiene una función que toma todos los parámetros juntos y se denomina estado que representa completamente el problema actual. Para este problema, debe calcular algunos otros subproblemas (problemas más pequeños) para poder encontrar la solución óptima para el problema actual.

Encontrar la solución óptima se realiza principalmente seleccionando la “mejor” transición. Por ejemplo, en un problema de mochila con el estado (elemento, resto de peso), solo tiene dos transiciones:

  1. tomar el artículo actual Entonces, la solución será el valor [item] + sol (nextItem, restantesWeight – weight [item]
  2. omitir el elemento actual Entonces, la solución será sol (nextItem, restantesWeight)

Para el artículo actual, dado que estamos maximizando el valor total, elegiremos la transición más grande.

En el problema mencionado, sucedió que tiene más de dos transiciones: para cada prenda, tiene un conjunto de modelos y desea elegir solo un modelo. Por lo tanto, debe encontrar qué transición (qué modelo) generará el máximo ahorro.

Si no recibió mi explicación, aquí hay algunos enlaces que podrían ayudarlo.

  • Tutorial de Topcoder
  • Wiki brillante
  • Tutorial HackerRank

More Interesting

¿Cuáles son los algoritmos utilizados por Google para SEO?

¿Cuál es el algoritmo utilizado para convertir cadenas en enteros?

¿Cómo podemos revertir una pila usando solo las operaciones push () y pop () sin usar ningún DS secundario?

¿Es posible simular / emular / codificar el poder de pensamiento de una CPU en una GPU?

¿Cómo analizar la complejidad de caso promedio de un algoritmo? ¿Hay alguna fuente para aprenderlo paso a paso de lo básico?

¿Por qué falla este método para encontrar la enésima posición de un nodo en una lista vinculada?

¿La complejidad de los algoritmos de clasificación está relacionada con la cantidad de suposiciones que hago? ¿Por qué?

Cómo mejorar un algoritmo para pseudo triangular un polígono

Si [matemática] f (n) [/ matemática] [matemática] \ en O (n) [/ matemática] y [matemática] g (n) \ en O (n) [/ matemática], es [matemática] f ( g (n)) \ en O (n ^ 2)? [/ matemáticas]

Cómo resolver este problema sin usar ningún algoritmo de aprendizaje automático

Cómo escribir un programa C # para implementar un algoritmo de programación SRTF (el tiempo restante más corto primero), junto con la visualización del diagrama de Gantt

¿Cuáles son las aplicaciones de las estructuras de datos?

¿Qué cosas (lenguajes de programación, algoritmos, etc.) aprendió Ashish Kedia después de completar su primer año?

¿Cuáles son las ventajas de los diferentes algoritmos de clasificación?

¿Cuáles son algunas de las cosas que los algoritmos de aprendizaje automático pueden hacer pero los algoritmos de aprendizaje profundo no pueden hacer?