CF2022E1.Billetes MX (Easy Version)
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是该问题的简单版本。在本版本中,保证 q=0。只有当你同时解决了两个版本的问题时,才能进行 hack。
一个有 p 行 q 列的整数网格 A 被称为美丽的,当且仅当:
- 网格中的所有元素都是 0 到 230−1 之间的整数;
- 对于任意子矩阵,其四个角的值的异或和等于 0。形式化地说,对于任意四个整数 i1、i2、j1、j2(1≤i1<i2≤p;1≤j1<j2≤q),都有 Ai1,j1⊕Ai1,j2⊕Ai2,j1⊕Ai2,j2=0,其中 ⊕ 表示按位异或运算。
现在有一个部分填充的整数网格 G,有 n 行 m 列,其中只有 k 个格子被填充。Polycarp 想知道,有多少种方法可以给未填充的格子赋值,使得整个网格是美丽的。
然而,Monocarp 认为这个问题太简单了。因此,他会对网格进行 q 次更新。在每次更新中,他会选择一个未填充的格子并赋予它一个整数。注意,这些更新是持久的,也就是说,对网格的更改会影响后续的所有更新。
对于每个 q+1 个网格状态(初始状态及每次查询后的状态),请你计算 Polycarp 可以如何给未填充格子赋值,使得网格美丽的方案数。由于答案可能非常大,你只需要输出其对 109+7 取模的结果即可。
输入格式
第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
每个测试用例的第一行包含四个整数 n、m、k 和 q(2≤n,m≤105;0≤k≤105;q=0),分别表示行数、列数、已填充的格子数和更新次数。
接下来的 k 行,每行包含三个整数 r、c 和 v(1≤r≤n,1≤c≤m;0≤v<230),表示 Gr,c 被赋值为 v。
接下来的 q 行,每行包含三个整数 r、c 和 v(1≤r≤n,1≤c≤m;0≤v<230),表示 Gr,c 被赋值为 v。
保证所有赋值的 (r,c) 坐标都是不同的。
保证所有测试用例中 n、m、k 和 q 的总和分别不超过 105。
输出格式
对于每个测试用例,输出 q+1 行。第 i 行输出网格第 i 个状态下的答案,对 109+7 取模。
输入输出样例
输入#1
2 3 3 8 0 2 1 6 3 2 12 1 2 6 2 2 0 1 3 10 1 1 0 2 3 12 3 1 10 2 5 2 0 1 1 10 1 2 30
输出#1
1 489373567
说明/提示
在示例的第一个测试用例中,网格如下:
0 6 10 6 0 12 10 12 ?
可以证明,格子 (3,3) 唯一合法的取值为 0。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?