1750: 小C的回文矩阵

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:14

题目描述

小C拥有着很厉害的算法学习能力,他已经学习了很多算法了。这几天,他在学习马拉车(Manacher)算法,突然之间,他觉得回文的东西都十分的美妙。为了整更多回文的东西,于是,他想到了创造一个回文矩阵。

对于这个他自己造的新玩意,他决定先向大家介绍一下:回文矩阵是一个n*n的字符矩阵,对于一个回文矩阵而言,主对角线上的每一个点,顺时针绕着矩阵走一圈回到原点,记录每一个走过的字符,形成的字符串k1;逆时针绕着矩阵走一圈回到原点,记录每一个走过的字符,形成的字符串k2,如果k1和k2字符串不相等,则不是回文矩阵。如果相等,则检验下一个点,如果主对角线上的每一个点检验后都相等,则为回文矩阵。

现在,小C随机生成了许多字符矩阵,他想让你帮忙筛选出其中所有的回文矩阵。

输入

第一行输入一个整数 t,代表有 t 组数据(1<=t<=100)

对于每组数据,读入一个整数 n,和一个 n*n 的矩阵(只包含英文字母),每组数据之间有空行(1<=n<=500)

输出

对于每组数据,如果矩阵为回文矩阵,则输出"Yes",否则输出“No”,双引号无需输出

样例输入 复制

2

2
aa
aa

4
bbbb
bfgb
bijb
bbbb

样例输出 复制

Yes
No

提示

顺逆时针走回原点时,原点都会再次计入字符串

对于第一组数据:

顺时针走回原点形成的字符串为aaaaa,逆时针走回原点形成的字符串为aaaaa,两次形成的字符串相同,所以为Yes

对于第二组数据:

第一圈顺逆时针走回原点形成的字符串都为bbbbbbbbbbbbb,因此第一圈满足回文条件,继续判断第二圈。

第二圈顺时针走回原点形成的字符串都为fgjif,逆时针走回原点形成的字符串为fijgf,两次形成的字符串不同,已经不满足回文条件了,因此不需要再继续判断了,该组样例答案为No



来源/分类