+ -
当前位置:首页 → 问答吧 → 求解Acm

求解Acm

时间:2011-09-05

来源:互联网

新汉诺塔游戏:
问题描述:
假设有n个不同大小的盘子,被按大小编号为1到n。初始状态下,这n个盘子被随机分布到A、B和C这3个柱子上。并保证小盘子在大盘子之上。现在你需要找到最少步骤将三个柱子上的盘子移动成目标状态。移动过程有两个要求:(1)一次只能移动一个盘子。(2)必须保证小盘子在大盘子之上。
输入:
输入文件包括很多组测试数据。每组测试数据的第1行为一个整数,表示盘子的个数。第2、3、4行表示初始状态时A、B和C柱上的盘子。每行第1个数表示该柱子上的盘子的数目,其后的数字表示盘子的编号。第5、6、7行表示目标状态。其中每行第一个数表示该柱子上的盘子的数目,其后的数字表示盘子的编号。
输出:
输出文件的每行是每组测试数据从初始状态变为目标状态的最小步骤数。
Sample Input
5
3 3 2 1
2 5 4
0
1 2
3 5 4 3
1 1
Sample Output
7

作者: wz_yanglin   发布时间: 2011-09-05

如果规模不是很大(盘子的个数不太多),我会用一个广度优先检索法,估计可以完成,其他的方法,等待高人

作者: hl_md_wj   发布时间: 2011-09-06