Codeforces Round 940 (Div. 2) and CodeCraft-23
C
How Does the Rook Move?
Codeforces
1600
原题
← BD →
翻译中…

You are given an $n \times n$ chessboard where you and the computer take turns alternatingly to place white rooks & black rooks on the board respectively. While placing rooks, you have to ensure that no two rooks attack each other. Two rooks attack each other if they share the same row or column regardless of color.

翻译中…

A valid move is placing a rook on a position ($r$, $c$) such that it doesn't attack any other rook.

翻译中…

You start first, and when you make a valid move in your turn, placing a white rook at position ($r$, $c$), the computer will mirror you and place a black rook at position ($c$, $r$) in its turn. If $r = c$, then the computer can't mirror your move, and skips its turn.

翻译中…

You have already played $k$ moves with the computer (the computer tries to mirror these moves too), and you must continue playing the game until there are no valid moves remaining. How many different final configurations are possible when you continue the game after the $k$ moves? It is guaranteed that the $k$ moves and the implied computer moves are valid. Since the answer may be large, print it modulo $10^9+7$.

翻译中…

Two configurations are considered different if there exists a coordinate ($r$, $c$) which has a rook in one configuration, but not in the other or the color of the rook on the coordinate is different.

翻译中…

Input

翻译中…

The first line contains a single integer $t$ ($1 \leq t \leq 10^4$) — the number of test cases.

翻译中…

The first line of each test case contains two integers $n$ and $k$ ($1 \leq n \leq 3 \cdot 10^5$, $0 \leq k \leq n$) — the size of the chessboard and the number of moves you have already played respectively.

翻译中…

Each of the next $k$ lines of the test case contains two integers $r_i$ and $c_i$, denoting the $i$-th move you made.

翻译中…

It is guaranteed that the $k$ moves and the implied computer moves are valid.

翻译中…

It is guaranteed that the sum of $n$ over all test cases does not exceed $3 \cdot 10^5$.

翻译中…

Output

翻译中…

For each test case, output a single integer on a new line — the total number of possible final configurations modulo $10^9+7$.

翻译中…

Note

翻译中…

In the first test case, we have a $4 \times 4$ grid and you've already played $1$ move. After you and the computer play a turn, we have a white rook at ($1$, $2$), and a black rook at ($2$, $1$). There are three possible configurations from this state —

翻译中…
  1. You place a white rook at ($3$, $4$) and the computer places a black rook at ($4$, $3$) as a response.
  2. You place a white rook at ($4$, $3$) and the computer places a black rook at ($3$, $4$) as a response.
  3. You place a white rook at ($3$, $3$) and then at ($4$, $4$), or the other way around. They both result in the same configuration.
翻译中…

image

翻译中…

样例

Input #1
3
4 1
1 2
8 1
7 6
1000 4
4 4
952 343
222 333
90 91
Output #1
3
331
671968183
InputCopy OutputCopy
题目信息
题号
1957C
时间限制
2 s
内存限制
256 MB
标签
组合数学
动态规划
数学

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。