CF2006F.Dora's Paint
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
不幸的是,朵拉在绘制班级壁画时颜料洒了。她将壁画视作一个 n×n 的矩阵 b,最开始时,矩阵中所有元素 bi,j 都是 0。
朵拉有两支不同颜色的画笔,在一次操作中,她可以使用其中一支画笔来为矩阵上色:
- 第一支画笔的颜色为 1,可以为矩阵中的某一列上色。具体来说,朵拉选择某一列 1≤j≤n,然后将这一列中所有的元素设置为 1,即 bi,j:=1 对于所有 1≤i≤n;
- 第二支画笔的颜色为 2,可以为矩阵中的某一行上色。具体来说,朵拉选择某一行 1≤i≤n,然后将这一行中所有的元素设置为 2,即 bi,j:=2 对于所有 1≤j≤n。
朵拉需要最终让整个矩阵 b 只包含颜色 1 和颜色 2。
对于任意矩阵 b,定义 f(b) 为从初始全 0 矩阵经过最少操作次数变为矩阵 b 所需的最小步骤数。矩阵 b 的“美丽值”是指用恰好 f(b) 次操作将初始矩阵变为 b 的不同方法数。如果不能将初始矩阵变为 b,那么美丽值为 0。
然而,朵拉随手犯了一个错误;实际的矩阵 a 和真正应该得到的矩阵 b 仅有一个元素不同。换句话说,存在一个唯一的元素位置 (i,j),使得 ai,j=3−bi,j。
请帮助朵拉计算在所有可能错误的情况下,真实矩阵 b 的期望美丽值,并对结果取模 998244353。
由于矩阵比较大,朵拉只告诉我们 m 个颜色为 1 的元素的位置,剩下的 n2−m 个元素的颜色为 2。
输入格式
每个测试点有多个测试用例。第一行包含一个整数 t (1≤t≤104),表示测试用例的数量。接下来是每个测试用例的具体内容。
对于每个测试用例的第一行,输入两个整数 n 和 m (2≤n≤2⋅105, 0≤m≤min(106,n2)),表示矩阵的大小以及颜色为 1 的元素数量。
接下来 m 行,每行包含两个整数 xi 和 yi (1≤xi,yi≤n),表示矩阵 a 中位置 (xi,yi) 的元素是颜色 1。
确保当 i=j 时,(xi,yi)=(xj,yj)。
保证所有测试用例中 n 的总和不超过 4⋅105,m 的总和不超过 106。
输出格式
对于每个测试用例,输出一个整数——这个整数是对真实矩阵 b 的期望美丽值取模 998244353 的结果。
输入输出样例
输入#1
7 2 2 1 1 1 2 2 1 1 1 3 2 1 1 3 3 6 0 5 10 1 1 1 2 1 3 2 1 2 3 5 1 5 2 5 3 5 4 5 5 3 5 1 1 1 3 2 2 3 1 3 3 4 3 1 1 2 3 2 4
输出#1
1 499122178 665496236 120 79859554 776412275 1
说明/提示
在第一个测试用例中,矩阵 a=[1212]。考虑将元素 (1,1) 改变以计算答案。
可以证明,将初始矩阵变为 [2212] 需要至少 3 步。具体方法是,先将第一行涂成颜色 2,然后将第二列涂成颜色 1,最后将第二行涂成颜色 2。操作过程如下:
[0000]⇒[2020]⇒[2011]⇒[2212]
事实证明,这种方法是唯一可以用3步实现的方法。因此,矩阵 [2212] 的美丽值为 1。类似地,如果改变矩阵中的其他元素,美丽值仍然是 1,所以真实矩阵 b 的期望美丽值为 1。
在第二个测试用例中,矩阵 a=[1222]。考虑将元素 (2,2) 改变以计算答案。
可以证明无法将初始矩阵变为 [1221],因此其美丽值是 0。如果改变矩阵中的其他任何元素,美丽值总是 2,所以期望美丽值为 40+2+2+2=46≡499122178(mod998244353)。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?