A. 汉诺塔问题 3

    传统题 1000ms 256MiB

汉诺塔问题 3

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

附加文件

【题目描述】

设有 n 个大小两两不等的中空圆盘,按圆盘直径从小到大的顺序依次编号为 1 到 n,将这 n 个圆盘叠套在三个立柱上,立柱的编号为 A、B、C,这个状态为起始状态。

现在要求找到一种步数最少的移动方案,使得从起始状态变为目标状态。

移动时要求:

(1)盘子只能置放于立柱上,不能置放于其他地方;

(2)一次只能移动一个盘子;

(3)任何时刻都不允许大盘子叠放在小盘子上面。

【输入格式】

第一行为盘子总数n。

第二行到第四行分别是起始状态中 A、B、C 柱上盘子的个数和从上到下的盘子编号。

第五行到第七行分别是目标状态中 A、B、C 柱上盘子的个数和从上到下的盘子编号。

输入数据保证从上到下的盘子编号为从小到大排列。

【输出格式】

输出步数最少的移动方案,每一步占1行,格式为(具体参考样例):move 圆盘编号 from 立柱编号 to 立柱编号

最后一行输出最少步数

【样例输入】

5
3 1 2 3
2 4 5
0
1 2
3 3 4 5
1 1

【样例输出】

move 1 from A to B
move 2 from A to C
move 1 from B to C
move 3 from A to B
move 1 from C to B
move 2 from C to A
move 1 from B to C
7

【数据范围】

100% 的数据:1 ≤ n ≤ 20

2025-12-09

未参加
状态
已结束
规则
OI
题目
5
开始于
2025-12-9 8:30
结束于
2025-12-9 12:00
持续时间
3.5 小时
主持人
参赛人数
5