CF1864G.Magic Square
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Aquamoon has a Rubik's Square which can be seen as an n×n matrix, the elements of the matrix constitute a permutation of numbers 1,…,n2 .
Aquamoon can perform two operations on the matrix:
- Row shift, i.e. shift an entire row of the matrix several positions (at least 1 and at most n−1 ) to the right. The elements that come out of the right border of the matrix are moved to the beginning of the row. For example, shifting a row (abc) by 2 positions would result in (bca) ;
- Column shift, i.e. shift an entire column of the matrix several positions (at least 1 and at most n−1 ) downwards. The elements that come out of the lower border of the matrix are moved to the beginning of the column. For example, shifting a column abc by 2 positions would result in bca .
The rows are numbered from 1 to n from top to bottom, the columns are numbered from 1 to n from left to right. The cell at the intersection of the x -th row and the y -th column is denoted as (x,y) .
Aquamoon can perform several (possibly, zero) operations, but she has to obey the following restrictions:
- each row and each column can be shifted at most once;
- each integer of the matrix can be moved at most twice;
- the offsets of any two integers moved twice cannot be the same. Formally, if integers a and b have been moved twice, assuming a has changed its position from (x1,y1) to (x2,y2) , and b has changed its position from (x3,y3) to (x4,y4) , then x2−x1≡x4−x3(modn) or y2−y1≡y4−y3(modn) .
Aquamoon wonders in how many ways she can transform the Rubik's Square from the given initial state to a given target state. Two ways are considered different if the sequences of applied operations are different. Since the answer can be very large, print the result modulo 998244353 .
输入格式
Each test contains multiple test cases. The first line contains the number of test cases t ( 1≤t≤2⋅104 ). The description of the test cases follows.
The first line of each test case contains an integer n ( 3≤n≤500 ).
The i -th of the following n lines contains n integers ai1,…,ain , representing the i -th row of the initial matrix ( 1≤aij≤n2 ).
The i -th of the following n lines contains n integers bi1,…,bin , representing the i -th row of the target matrix ( 1≤bij≤n2 ).
It is guaranteed that both the elements of the initial matrix and the elements of the target matrix constitute a permutation of numbers 1,…,n2 .
It is guaranteed that the sum of n2 over all test cases does not exceed 250000 .
输出格式
For each test case, if it is possible to convert the initial state to the target state respecting all the restrictions, output one integer — the number of ways to do so, modulo 998244353 .
If there is no solution, print a single integer 0 .
输入输出样例
输入#1
4 3 1 2 3 4 5 6 7 8 9 7 2 3 1 4 5 6 8 9 3 1 2 3 4 5 6 7 8 9 3 2 1 6 5 4 9 7 8 3 1 2 3 4 5 6 7 8 9 7 8 1 2 3 4 5 6 9 3 1 2 3 4 5 6 7 8 9 3 8 4 5 1 9 7 6 2
输出#1
1 0 0 4
说明/提示
In the first test case, the only way to transform the initial matrix to the target one is to shift the second row by 1 position to the right, and then shift the first column by 1 position downwards.
In the second test case, it can be shown that there is no correct way to transform the matrix, thus, the answer is 0 .