#B4579. [GESP202609 四级] 新汉诺塔
[GESP202609 四级] 新汉诺塔
题目描述
汉诺塔问题是最经典的递推问题之一:
有三个可以放圆盘柱子,编号为 、 和 。
开始时柱子 上套着 个圆盘,它们从上到下按照从小到大的顺序排列。
我们的任务是要把这 个圆盘移到柱子 上,并保持它们的原有顺序不变。
在移动圆盘的过程中,需要遵守以下规则:
- 圆盘只能从一根柱子顶部拿出,从另一根柱子顶部放入。
- 每次只能移动一个圆盘。
- 小圆盘必须时刻位于大圆盘之上。
小杨在学习了汉诺塔问题后,决定添加一个新规则:
- 每一次移动,圆盘只能从 移动到 ,从 移动到 ,或者从 移动到 ;其它移动是不允许的。
在新规则下,给定圆盘数量 ,试问最少移动步数是多少?
输入格式
输入一个正整数 ,表示圆盘的数量。
输出格式
输出一个整数,表示在新规则下将 个圆盘从 移动到 所需的最少移动步数。
输入输出样例 #1
输入 #1
2
输出 #1
7
输入输出样例 #2
输入 #2
3
输出 #2
21
说明/提示
样例解释 1
以下步骤是最佳的(编号为 1 的是小盘,为 2 的是大盘):
- 将 1 从 移动到 ;
- 将 1 从 移动到 ;
- 将 2 从 移动到 ;
- 将 1 从 移动到 ;
- 将 2 从 移动到 ;
- 将 1 从 移动到 ;
- 将 1 从 移动到 。
可以证明没有更少步骤可以完成这个任务。
数据范围
对于所有数据,。