Récemment, je suis tombé sur ce problème , une variante des tours de hanoi .
Énoncé du problème:
Considérez la variation suivante du problème bien connu des tours de Hanoi:
On nous donne tours et m disques de tailles 1 , 2 , 3 , … , m empilés sur certaines tours. Votre objectif est de transférer tous les disques vers la k ème tour en aussi peu de mouvements que vous pouvez gérer, mais en tenant compte des règles suivantes:
- déplacer un seul disque à la fois,
- ne jamais déplacer un disque plus gros sur un plus petit,
- se déplaçant uniquement entre les tours à distance au plus .
(Limites dans le problème d'origine: et m ≤ 100. Nombre de cas de test ≤ 1000. Vous pouvez supposer que tous les problèmes peuvent être résolus en pas plus de 20000 mouvements.)
C'est intéressant. Le problème des tours classiques de hanoi a une source, une destination et une tour temporaire qui sont utilisées pour déplacer les disques de la source à la destination. Le problème posé sur ce site a essentiellement une configuration initiale et finale.
Comment aborder ce problème?