[ABC339D]Synchronized Players
题目大意
给定一个N*N的地图,地图中#表示不能走,地图上有两个人,两个人每次走的方向都相同,每次只能向相同的方向走,,问最少几步就能相遇?
题解
这个题一看就是搜索,广搜,刚开始我陷入一个误区,让两个人分开记录状态,这个时候有个问题,当一个人能走,另一个人不能走的时候,步数就不同步,这个问题就不好解决
开始的时候,我是怎么解决的?为了让两个人的步数一致,如果不能走的时候,我会把队头重新入对,这样会产生一个问题,如果两个人都不能走的话,会出现死循环
当我把这个代码交上去的时候,TLE了,这个时候我突然想到,我为什么将两个人变成一个人,用一种状态表示?
其实,出现这个问题的最主要原因是,没有好好理解状态这个词,这个题,我们可以将两个人理解为一个人,因为他们是同步走的,所以我们将两个人看成是一个人,这样状态就是\(N^{4}\),状态数也不是很多,直接bfs就可以了
后来我再看那个TLE的代码,思想是对的,代码写错了