[ABC339D]Synchronized Players

题目大意

给定一个N*N的地图,地图中#表示不能走,地图上有两个人,两个人每次走的方向都相同,每次只能向相同的方向走,,问最少几步就能相遇?

题解

这个题一看就是搜索,广搜,刚开始我陷入一个误区,让两个人分开记录状态,这个时候有个问题,当一个人能走,另一个人不能走的时候,步数就不同步,这个问题就不好解决

开始的时候,我是怎么解决的?为了让两个人的步数一致,如果不能走的时候,我会把队头重新入对,这样会产生一个问题,如果两个人都不能走的话,会出现死循环

当我把这个代码交上去的时候,TLE了,这个时候我突然想到,我为什么将两个人变成一个人,用一种状态表示?

其实,出现这个问题的最主要原因是,没有好好理解状态这个词,这个题,我们可以将两个人理解为一个人,因为他们是同步走的,所以我们将两个人看成是一个人,这样状态就是\(N^{4}\),状态数也不是很多,直接bfs就可以了

后来我再看那个TLE的代码,思想是对的,代码写错了

posted @ 2024-07-15 12:13  xinyimama  阅读(7)  评论(0编辑  收藏  举报