Hanoi 双塔问题

普及/提高- GESP六级 模拟与基础算法类 高精度递推

题目描述

给定 A、B、C 三根足够长的细柱,在 A 柱上放有 $2n$ 个中间有孔的圆盘,共有 $n$ 个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为 $n=3$ 的情形)。

现要将这些圆盘移到 C 柱上,在移动过程中可放在 B 柱上暂存。要求:

  1. 每次只能移动一个圆盘;
  2. A、B、C 三根细柱上的圆盘都要保持上小下大的顺序。

任务:设 $A_n$ 为 $2n$ 个圆盘完成上述任务所需的最少移动次数,对于输入的 $n$,输出 $A_n$。

输入格式

一个正整数 $n$,表示在 A 柱上放有 $2n$ 个圆盘。

输出格式

一个正整数, 为完成上述任务所需的最少移动次数 $A_n$。

数据范围

限制

  • 对于 $50\%$ 的数据,$1 \le n \le 25$;
  • 对于 $100\%$ 的数据,$1 \le n \le 200$。

提示

设法建立 $A_n$ 与 $A_{n-1}$ 的递推关系式。

样例输入 1

1

样例输出 1

2

样例输入 2

2

样例输出 2

6
时间限制: 1000ms
内存限制: 125MB
通过率: 0.0%
提交数: 0

设置

导航栏小工具

时钟
显示实时时钟(默认组件)
📝
代码粘贴板
快速创建和分享代码片段