#GESP420260901. 【GESP-四级】-2026.09-新汉诺塔

    ID: 197 传统题 1000ms 512MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>GESPGESP四级2026.09数列递推动态规划汉诺塔双状态转移64位整数

【GESP-四级】-2026.09-新汉诺塔

题目描述

汉诺塔问题是最经典的递推问题之一:

有三个可以放圆盘柱子,编号为 A、B 和 C。开始时柱子 A 上套着 n 个圆盘,它们从上到下按照从小到大的顺序排列。我们的任务是要把这 n 个圆盘移到柱子 C 上,并保持它们的原有顺序不变。

在移动圆盘的过程中,需要遵守以下规则:

  1. 圆盘只能从一根柱子顶部拿出,从另一根柱子顶部放入。
  2. 每次只能移动一个圆盘。
  3. 小圆盘必须时刻位于大圆盘之上。

小杨在学习了汉诺塔问题后,决定添加一个新规则: 4. 每一次移动,圆盘只能从 A 移动到 B,从 B 移动到 C,或者从 C 移动到 A;其它移动是不允许的。

在新规则下,给定圆盘数量 n,试问最少移动步数是多少?

输入格式

输入一个正整数 n,表示圆盘的数量。

输出格式

输出一个整数,表示在新规则下将 n 个圆盘从 A 移动到 C 所需的最少移动步数。

样例输入 1

2

样例输出 1

7

样例输入 2

3

样例输出 2

21

样例解释

可用两个状态递推:f[i]=2g[i−1]+1,g[i]=2g[i−1]+f[i−1]+2,答案为 g[n]。

数据范围

保证 1≤n≤20。