d734. 另类Hanoi
Tags :
Accepted rate: 55人/ 68人 ( 81%) [非即時]
評分方式:
Tolerant

最近更新 : 2011-10-21 21:30

Content

设有n个大小不同的中空圆盘,按从小到大的顺序从1到n编号。将这n个圆盘任意的迭套在三根立柱上,立柱的编号依次为 a、b、c ,这个状态称为初始状态。

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

移动时有如下要求:

* 一次只能移动一个盘。

* 不允许把大盘移到小盘上面。

Input

第一行数字n(1<=n<=20),表示状态中圆盘总数。

第二行表示初始状态,有n个数字,第i个数字a[i]表示第i个圆盘放在第a[i]个立柱上。

第三行表示目标状态,有n个数字,第i个数字b[i]表示第i个圆盘放在第b[i]个立柱上。

不必EOF判断。

Output
输出移动步骤时,需按照 ring x : y -> z 的格式,其中x为整数,y、z为a、b、c其中一个。
最后在输出最少步数。
Sample Input #1
5
1 1 1 2 2
3 1 2 2 2
Sample Output #1
ring 1 : a -> b
ring 2 : a -> c
ring 1 : b -> c
ring 3 : a -> b
ring 1 : c -> b
ring 2 : c -> a
ring 1 : b -> c
7
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (20%): 2.0s , <1K
公開 測資點#1 (20%): 2.0s , <1K
公開 測資點#2 (20%): 2.0s , <1K
公開 測資點#3 (20%): 2.0s , <1K
公開 測資點#4 (20%): 2.0s , <1K
Hint :

b190: 97七区资讯学科5(改编) 的加强版

a268: 河內塔問題 的弱弱版

Tags:
出處:
97 七区资讯学科能力竞赛 [管理者: liouzhou_101 (王启圣) ]

Status Forum 排行

ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」