CF2092E.She knows...

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

D. Pippy 正在为家中的"黑白派对"做准备。他只需要重新粉刷地下室的地板,地板可表示为 n×mn \times m 的棋盘。

在上次派对后,整个棋盘除 kk 个单元格 (x1,y1),(x2,y2),…,(xk,yk)(x_1, y_1), (x_2, y_2), \ldots, (x_k, y_k) 外均被涂成绿色,这些单元格已被涂成白色或黑色。为了即将到来的派对,D. Pippy 想要将剩余的绿色单元格涂成黑色或白色。同时,他要求重新粉刷后棋盘上相邻颜色不同的单元格对数量为偶数。

形式化地,若定义集合:

A={((i1,j1),(i2,j2)) ∣ 1≤i1,i2≤n,1≤j1,j2≤m,i1+j1<i2+j2,∣i1−i2∣+∣j1−j2∣=1,color⁡(i1,j1)≠color⁡(i2,j2)},A = \left\{((i_1, j_1), (i_2, j_2)) \ | \ 1 \le i_1, i_2 \le n, 1 \le j_1, j_2 \le m, i_1+j_1 < i_2+j_2, |i_1-i_2|+|j_1-j_2| = 1, \operatorname{color}(i_1, j_1) \neq \operatorname{color}(i_2, j_2) \right\},

其中 color⁡(x,y)\operatorname{color}(x, y) 表示单元格 (x,y)(x, y) 的颜色,则要求 ∣A∣|A| 为偶数。

请帮助 D. Pippy 计算满足条件的粉刷方案数。由于答案可能很大,请输出其对 109+710^9 + 7 取模的结果。

输入格式

每个测试包含多个测试用例。输入数据第一行包含一个整数 tt (1≤t≤1041 \le t \le 10^4) —— 测试用例数量。接下来是测试用例描述。

每个测试用例的第一行包含三个整数 n,m,kn, m, k (3≤n,m≤1093 \le n, m \le 10^9; 1≤k≤2⋅1051 \le k \le 2 \cdot 10^5) —— 棋盘的尺寸和初始非绿色单元格的数量。

接下来每个测试用例的 kk 行中,第 ii 行包含三个整数 xi,yix_i, y_i 和 cic_i (1≤xi≤n1 \le x_i \le n; 1≤yi≤m1 \le y_i \le m; ci∈{0,1}c_i \in \{0, 1\}) —— 单元格的坐标及其颜色(白色对应 ci=0c_i = 0,黑色对应 ci=1c_i = 1)。保证所有单元格坐标互不相同。

保证所有测试用例的 kk 之和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出一个整数 —— 答案对 109+710^9 + 7 取模的结果。

输入输出样例

  • 输入#1

    2
    3 3 6
    1 1 0
    1 2 1
    1 3 0
    3 1 1
    3 2 0
    3 3 1
    3 4 12
    1 1 0
    1 2 1
    1 3 0
    1 4 1
    2 1 1
    2 2 0
    2 3 1
    2 4 0
    3 1 0
    3 2 1
    3 3 0
    3 4 1

    输出#1

    4
    0

说明/提示

第一个测试案例中,绿色单元格 (2,1),(2,2),(2,3)(2, 1), (2, 2), (2, 3) 共有 44 种合法涂色方案,分别为:(1,1,0)(1, 1, 0),(0,0,1)(0, 0, 1),(1,0,0)(1, 0, 0),(0,1,1)(0, 1, 1)(颜色按单元格顺序排列),如下图所示。


第二个测试案例中,棋盘已全部涂色且相邻异色对数量为奇数,因此答案为 00。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页