题目描述
在一个4*4的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动时只能将玩具向上下左右四个方向移动,并且移动的位置不能有玩具,请你用最少的移动次数将初始的玩具状态移动到某人心中的目标状态。
输入输出格式
输入格式:
前4行表示玩具的初始状态,每行4个数字1或0,1表示方格中放置了玩具,0表示没有放置玩具。接着是一个空行。接下来4行表示玩具的目标状态,每行4个数字1或0,意义同上。
输出格式:
一个整数,所需要的最少移动次数。
输入输出样例
输入样例#1:
1111 0000 1110 0010 1010 0101 1010 0101
输出样例#1:
4
这一道题看完后思考了一会儿,感觉是蒙的,后来实在忍不住看了一下题解
其实在这一道题中每一个玩具都是一样的,所以移动时就不用判断前方是否有别的玩具了
举个例子
我们开始是 :
0 1 1 1 1 1
然后要变成
1 1 1 1 1 0
因为玩具都是一样的,所以把玩具一个个的往左边移动和把没有与结果匹配的那个玩具直接一步步跳到为匹配的点的步数是一样的
现在这道题就变成了看哪个位置的玩具没有匹配,就把那个玩具跳到另一个没有匹配的空格子
因为数据很小,所以我们只需要用深搜来求解就行了
参