Seven puzzle AOJ0121

7个谜题由8个正方形卡片和它们全部容纳的正方形卡片组成。为了能够将各个卡片分别区分开来,0、1、2…上面写着7和号码。在边框上,你可以将两张卡竖着排列,每张4张卡。

当你开始解谜7时,将所有卡片都放在框框里。只有0个框框可以与上下左右相邻的卡交换位置。例如,如果框的状态在图(a)时,与邻接0卡的右侧的7卡交换位置,成为图(b)的状态。或者,如果与图2a所示的状态0的卡下相邻的两张卡交换位置的话,将进入图2c所示的状态。由于在图(a)的状态下与0卡相邻的只有7和2卡,因此不允许更换以外的位置。

游戏的目的是将卡片整齐排列成图(d)的状态。请以最初的状态作为输入,在卡整齐排列之前制作输出必要的最小手数的程序。但是,可以将卡的状态从输入卡的状态移至图d的状态。

输入数据,1行有8个数字空白。这些是表示最开始状态的卡的排列。例如,图(a)中的数字表示为0 7 3 4 5 5 1 6,图(c)为2 7 3 4 0 5 1 6。

在图(a)中0 73,2 51 6的情况下图(b)中7 0 3,4 5 1 6的情况

图2c在2273,051,6的情况下图(d) 0 1 2 3 4 5 6 7(最终状态)

input

以上述形式提供了多个谜题。请处理到输入的最后。给出的谜题数量在1000以下。

output

请针对每个谜题输出将处理至最终状态的最小量值一行。

sample input

0 1 2 3 4 5 6 7

1 0 2 3 4 5 6 7

7 6 5 4 3 1 0

出put for the Sample Input

0

1

28

思路:我们应该将0位置作为遍历对象,采用BFS方法解决,但是因为有很多例子要处理,所以要把结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值