#CF1957C. 车如何移动?
车如何移动?
车如何移动?
- 时间限制:2 秒
- 内存限制:256 MiB
题目描述
你在一个 的棋盘上玩一个游戏。
每次你可以选择位置 放置一个白色车,使放置后任意两辆车(无论颜色)都不能在同一行或同一列相互攻击。如果 ,电脑随后会在 放置一个黑色车;只要你的操作合法,电脑的操作也一定合法。
现在你已经进行了 次操作,输入给出这 辆白色车的位置,电脑也已经完成了对应操作。之后你继续操作,直到棋盘上再也不存在合法位置。
求游戏结束时可能形成多少种不同局面。两个局面不同,当且仅当存在一个位置,其上的车的颜色不同,或仅有一个局面在该位置放有车。
答案对 取模。
输入格式
第一行包含一个整数 ,表示数据组数。
对于每组数据,第一行包含两个整数 。
接下来 行,每行包含两个整数 ,表示第 次操作放置的白色车的位置。输入保证这些操作均合法。
输出格式
对于每组数据,输出一行一个整数,表示可能的最终局面数对 取模后的结果。
样例输入 1
3
4 1
1 2
8 1
7 6
1000 4
4 4
952 343
222 333
90 91
样例输出 1
3
331
671968183
数据范围
对于全部数据,,,,,且单个输入文件内满足 。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 30 | 且 |
| 2 | 40 | 且 |
| 3 | 30 | 无特殊限制 |