bzoj#P2374. 推箱子
推箱子
题目描述
推箱子是一个古老的游戏。在一个狭小的仓库中,要求控制小人的上下左右把木箱推到指定的位置。而且一次只能推动一个,胜利条件就是把所有的箱子都推到目的地。
小 Z 最近迷上了这个推箱子的游戏,可是玩了几关后发现,后边的相当地难通过,于是便需要你的帮助来通关。
输入格式
第 行,两个数 分别表示地图有 行 列 。
第 行到第 行,每行 个数,表示地图,其中 1
表示墙壁,2
表示箱子的位置,3
表示箱子的目的地,4
表示这个位置既是目的地,也有箱子,5
表示小人,0
则表示这里什么都没有,每个数都用空格空开。其中每个箱子可以推到任意一个目的地。
输出格式
一行,一个数,表示通关的最小步数,即小人移动的次数(由于方案不唯一,这里省去了输出方案)。
样例输入
6 6
1 5 0 1 1 1
1 0 2 0 0 1
1 1 0 1 0 1
3 1 0 1 0 0
3 2 0 0 1 0
3 0 0 0 2 0
样例输出
50
数据规模与约定
在所有数据中,。
数据保证人不会一开始站在目的地上,并保证都有解。