这道题是叫做滑动谜题,我想到了小时候玩的滑动拼图。可是我发现,我并没有总结出其中的规律。为此,我还专门下载了一个游戏,想来找找感觉。可惜,并没有找到。

吃完饭后,开始看攻略,看到了这个问题只是一个简单的BFS(Breadth First Search)宽度(广度)优先搜索问题。是一种盲目搜索,彻底搜索某张图,直至找到结果。可以解决两类问题:1)从A出发,是否存在到B的路径;2)从A出发是否存在到B的最短路径(最少步骤)。
我还是没懂这是什么意思,后来我去看了一篇代码:

例如,(1,0,-1,0)和(0,1,0,-1)一开始就没懂是啥意思,后来问了zwk才知道,原来就是向四个方向移动的意思。



但是,我对BFS的理解始终不太清楚。我准备用一些可爱一些的方式,例如,福字儿去找kiyomi,中间要经过许多石头,石头之间有红色的细线相连,只能相连的石头,才能走。下面开始讲故事,我讲了一个版本,可是讲着讲着就不太对,所以我狮虎纠正了我:福字儿要去找kiyomi,福字儿发现了三条岔路,于是他把自己分成了3份(紫,黄,绿),为了避免往回走,他把回去的路都拆了,每次到了岔路口,就会把自己分身,这样子重复下去。每个福字的速度都一样,也就是每次只能跳一块石头,如果有一个福字找到了,那么所有福字都停止寻找。这样来看,就是第二条紫色的路,是最短的,跳了2块石头,就到了kiyomi那里。
还有一些,没有理解。后来才顿悟!





网友评论