1526: 碎片
Description
小X的记忆中,有一幅N*M的中心对称的图案。
而现在,他的脑海中只有一幅有所变动的图案,它同样是N*M的,但却不 一定是中心对称的。
小X决定修补这一图案,他能够进行的操作共有两种:交换两行,或者交换 两列。小X想要知道能否通过有限(可能为0)次操作让它变得中心对称。
为了保证数据的强度,一个测试点中可能包含多组测试数据。
Input
第一行两个整数Num、T,Num表示测试点编号,以便选手方便地获得部分 分,你可能不需要用到这则信息,样例中Num的含义为数据范围与某个测试点 相同;T表示该测试点中包含的测试数据的组数。
对于接下来每一组测试数据,第一行两个整数N、M,表示图案的大小。 接下来一个N行M列的字符矩阵,表示图案。
Output
输出T行,每行一个YES或NO,表示是否能够使图案中心对称。
Sample Input Copy
6 1
2 3
ABC
BAC
Sample Output Copy
YES
HINT
【样例解释】
交换第2 列和第3 列,得到以下图案:
ACB
BCA
它是中心对称的。
【数据范围及子任务】
对于所有测试数据,保证1≤N、M≤12,1≤T≤10,图案由大写字母组成。
特殊限制:图案仅由A 和B 组成。
测试点编号 |
T |
N |
M |
特殊限制 |
1 |
=1 |
=1 |
=1 |
YES |
2 |
≤5 |
|||
3 |
≤12 |
NO |
||
4 |
=2 |
=2 |
YES |
|
5 |
≤5 |
|||
6 |
≤12 |
NO |
||
7 |
^4 |
^4 |
YES |
|
8 |
≤5 |
≤5 |
||
9 |
=5 |
≤3 |
≤3 |
|
10 |
||||
11 |
NO |
|||
12 |
≤5 |
≤5 |
||
13 |
||||
14 |
||||
15 |
=10 |
^8 |
^8 |
YES |
16 |
^9 |
^9 |
||
17 |
≤10 |
≤10 |
NO |
|
18 |
≤11 |
≤11 |
||
19 |
≤12 |
≤12 |
||
20 |