CF585B Phillip and Trains
题目描述
移动应用商店上线了一款新游戏,叫做“Subway Roller”。
游戏的主角 Philip 位于隧道的一端,想要穿越到另一端。隧道是一个由三行 $n$ 列组成的矩形区域。游戏开始时,主角出现在最左侧列的某个单元格中。有若干列火车正朝着主角驶来。每辆火车在该区域的某一行上,由两个或更多相邻单元格组成。
所有火车以每秒两格的速度从右向左移动,而主角每秒以一格的速度从左向右奔跑。为简化实现,游戏规定主角和火车轮流移动。首先,主角向右移动一格,然后可以选择向上或向下移动一格,也可以静止不动。之后,所有火车会同时向左移动两格。因此,在一次操作中,Philip 一定会向右移动,并且可以选择向上、向下或不变。如果在任意时刻 Philip 与火车处于同一个格子,他就会失败。如果火车到达最左侧列,它仍然会像之前一样继续移动,最终驶出隧道。
你的任务是回答是否存在一系列移动方式,使得 Philip 能够顺利到达最右侧的列。

输入格式
每组测试包含一到十组输入数据。测试的第一行包含一个整数 $t$(对于预测试和测试,$1\leq t\leq 10$,对于 hack,则 $t=1$;详见说明部分)——数据组数。
接下来是 $t$ 组输入数据的描述。
每组输入数据的第一行包含两个整数 $n,k$($2\leq n\leq 100, 1\leq k\leq 26$)——隧道区域的列数以及火车的数量。接下来的三行,每行包含 $n$ 个字符,表示隧道中的一行。主角的初始位置用 's' 表示,一定位于最左侧的某一个单元格。每辆火车用英文大写字母在某一行连续标记,且每辆火车用不同的字母。字符 '.' 表示该格为空,即既没有主角也没有火车。
输出格式
对于每组输入数据,如果 Philip 能够成功到达最右侧一列,则输出一行 YES,否则输出一行 NO。
说明/提示
在第一个样例的第一组测试数据中,Philip 需要先向前并且下移到第三行,然后只需向前,接着向前并上移到第二行,再向前一次后上移到第一行。这样火车就不会挡住 Philip 的路,之后他可以直接穿越隧道到达终点。
注意:本题中的挑战仅限于仅包含一组输入的测试用例。
由 ChatGPT 5 翻译