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