Esta es una pregunta de programación dinámica. A primera vista, parece que el ladrón podría robar cualquier otra casa, en cuyo caso, le preguntamos si debería comenzar con la primera o la segunda; Esto podría maximizar el número de casas que roba. Sin embargo, es posible que ninguna de estas posibilidades maximice la cantidad de dinero que robaría (por ejemplo, las casas 1 y 4 tienen un millón de dólares cada una, y el resto no tiene dinero).
Idea de algoritmo: si solo hubiera casas [matemáticas] k [/ matemáticas], ¿cuánto dinero podría ganar el ladrón? Calcule esto para [matemáticas] k = 1, 2, 3,… n [/ matemáticas] (en ese orden): este cálculo será rápido, ya que cada paso solo requiere una pequeña cantidad de trabajo.
Sea [math] M (k) [/ math] la cantidad de dinero en la casa [math] k [/ math] th, y [math] P (k) [/ math] sea la cantidad máxima de dinero que puede hacer si consideramos solo las primeras casas [matemáticas] k [/ matemáticas]. Entonces tenemos:
- [matemáticas] P (0) = 0 [/ matemáticas]
- [matemáticas] P (1) = M (1) [/ matemáticas]
- [matemáticas] P (k) = \ max (P (k-2) + M (k), P (k-1)) [/ matemáticas] (primer caso = robar la casa [matemáticas] k [/ matemáticas] , y alguna combinación de la primera [matemática] k-2 [/ matemática], segundo caso = no robar [matemática] k [/ matemática] th casa, y robar alguna combinación de la primera [matemática] k-1 [ /matemáticas]). Mantenga un registro de estas decisiones.
Una vez que ha calculado [matemáticas] P (n) [/ matemáticas], ha encontrado la cantidad máxima de dinero que puede robar, y si ha rastreado las decisiones que lo llevaron allí (cuál de las [matemáticas] M (k ) [/ math] se agregaron), ya sabes qué casas robar.
- Programación y matemáticas: ¿Cuáles son los mejores rompecabezas que has visto?
- Hay ocho bolas. Siete de ellos pesan lo mismo pero uno de ellos tiene un peso diferente (más pesado o más liviano). ¿Cómo encuentras la pelota extraña con dos pesas?
- ¿Cuáles son algunos de los mejores acertijos o acertijos de palabras / lógica?
- ¿Cuál es el rompecabezas lógico más enigmático que te has encontrado?
- ¿Es lógico lo siguiente? ¿Si no, porque no?