CF1957C.How Does the Rook Move?
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
你在一个 n×n 的棋盘上玩一个游戏。
你每次可以选择在 (r,c) 的位置放置一个白色的车,使得放置后所有车无法通过水平或垂直的方向攻击到其它车(无论颜色)。如果 r=c 则电脑在 (c,r) 处放一个黑色的车,可以证明,如果你的操作合法,电脑操作必定合法。
现在你已经放置了 k 个白色的车(显然电脑也已经进行了对应操作),如果你继续放车直到没有合法的位置放车,则游戏结束。
你希望知道游戏结束时形成的局面的可能性。
答案对 109+7 取模。
两个局面不同当且仅当某个位置上的车颜色不同或其中一个局面放了车而另一个没有。
输入格式
第一行一个整数 t,表示数据组数。
接下来对于每组数据,第一行两个整数 n,k。
接下来 k 行,每行两个整数 ri,ci,表示已经放置的白车的位置。
输出格式
共 t 行,每行一个整数,表示答案。
输入输出样例
输入#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 \leq t \leq 10^4 , 1 \leq n \leq 3 \times 10^5 $ , $ 0 \leq k \leq n ,\sum n\le3\times10^5$。
输入解题思路,AI测评打分。不知道怎么写?