#CF2006F. Dora 的颜料
Dora 的颜料
F. Dora 的颜料
时间限制:3 秒
内存限制:512 MB
可惜,Dora 在画班级壁画时把颜料打翻了。Dora 将壁画视为一个 的矩阵 。初始时,对所有 ,。
Dora 只有两支不同颜色的刷子。一次操作中,她可以使用其中一支刷子:
- 第一支刷子颜色为 ,可以涂满矩阵的一整列。即 Dora 选择 ,并对所有 设置 ;
- 第二支刷子颜色为 ,可以涂满矩阵的一整行。即 Dora 选择 ,并对所有 设置 。
Dora 会涂色使得最终矩阵 只包含 和 。
对于矩阵 ,记 为将初始全 矩阵变为 所需的最少操作次数。矩阵 的美丽值定义为:恰好使用 次操作将初始矩阵涂成 的不同方式数。如果无法将初始矩阵变为 ,则美丽值为 。
然而,Dora 犯了一个均匀随机的错误:你得到的矩阵 与真实矩阵 恰好有一个元素不同。即存在恰好一个 ,使得 。
请帮助 Dora 计算真实矩阵 的期望美丽值,对 取模(所有 种可能的错误位置等概率)。
由于矩阵太大,Dora 只会告诉你其中 个颜色为 的元素的位置,其余 个元素颜色为 。
输入格式
每个测试点包含多个测试用例。第一行包含一个整数 ()—— 测试用例的数量。
每个测试用例的第一行包含两个整数 和 (,)—— 矩阵的大小以及颜色为 的元素个数。
接下来的 行,每行包含两个正整数 和 (),表示 。
保证若 ,则 。
数据保证:所有测试用例的 之和不超过 ,所有测试用例的 之和不超过 。
输出格式
对于每个测试用例,输出一个整数 —— 真实矩阵 的期望美丽值,对 取模。
示例
输入
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
499122178
665496236
120
79859554
776412275
1
样例解释
第一个测试用例:矩阵 。考虑改变元素 来计算答案。
可以证明将初始矩阵涂成 的最少步数为 。一种涂法:先涂第一行为 ,再涂第二列为 ,最后涂第二行为 。可以证明这是唯一一种 步涂法,因此该矩阵的美丽值为 。类似地,改变其他任意元素得到的矩阵美丽值都是 ,所以期望美丽值为 。
第二个测试用例:矩阵 。考虑改变元素 来计算答案。
可以证明无法将初始矩阵涂成 ,因此其美丽值为 。改变其他任意元素得到的矩阵美丽值都是 ,所以期望美丽值为 $\frac{0+2+2+2}{4} = \frac{6}{4} \equiv 499122178 \pmod{998244353}$。