A83474.Snuke Maze
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
有一个 H 行 W 列的网格。以下将从上到下第 i 行、从左到右第 j 列的格子记作 (i,j)。网格的每个格子上都写有一个小写英文字母,(i,j) 上写的字母等于给定字符串 Si 的第 j 个字符。
すぬけ君想要通过不断移动到边上相邻的格子,从 (1,1) 走到 (H,W)。他希望所经过的格子(包括起点 (1,1) 和终点 (H,W))上写的字母,按照经过的顺序依次为 s → n → u → k → e → s → n →…,即不断循环 snuke 这五个字母。请判断是否存在这样的一条路径。
这里,两个格子 (i1,j1) 和 (i2,j2) 当且仅当 ∣i1−i2∣+∣j1−j2∣=1 时,称为“边上相邻”。
更严格地说,请判断是否存在一个格子序列 ((i1,j1),(i2,j2),…,(ik,jk)),满足以下所有条件:
- (i1,j1)=(1,1), (ik,jk)=(H,W)
- 对所有 t (1≤t<k),(it,jt) 和 (it+1,jt+1) 边上相邻
- 对所有 t (1≤t≤k),(it,jt) 上写的字母等于
snuke的第 ((t−1)mod5)+1 个字母
输入格式
输入按以下格式从标准输入读入。
H W
S1
S2
⋮
SH
输出格式
如果存在满足题意的路径,输出 Yes;否则输出 No。
输入输出样例
输入#1
2 3 sns euk
输出#1
No
输入#2
2 2 ab cd
输出#2
Yes
说明/提示
限制
- 2≤H,W≤500
- H,W 为整数
- Si 是由小写英文字母组成的长度为 W 的字符串
样例解释 1
路径 (1,1)→(1,2)→(2,2)→(2,3),经过的格子上的字母依次为 s → n → u → k,满足条件。