A3955 「USACO 2026 First Platinum」Pluses and Minuses

暂无评定 传统题 USACO 上传者
时间限制2000ms
内存限制256MiB
通过 / 提交0/0

A3955「USACO 2026 First Platinum」Pluses and Minuses

暂无评定 传统题 USACO 上传者
时间限制2000ms
内存限制256MiB
通过 / 提交0/0

题目描述

题目译自 USACO 2026 First Contest, Platinum Problem 3. Pluses and Minuses

农夫约翰曾经在他的牧场地上画了一个矩形网格。在每个格子里,他画了一个 ++ 或 −-(分别代表 +1+1 和 −1-1)。

随着时间的推移,颜料褪色了,农夫约翰现在只记得某些格子的值。然而,农夫约翰确实记得关于原始涂色方案的一个重要事实:

在每一行和每一列中,任何连续子段的数值之和总是介于 −1-1 和 22 之间(含端点)。

作为一个例子,考虑行 + - - +\texttt{+ - - +}。它不满足条件,因为子段 + [ - - ] +\texttt{+ [ - - ] +} 的和为 −2-2。

然而,行 - + + -\texttt{- + + -} 确实满足条件:

[ - ] + + -    sum = -1
[ - + ] + -    sum = 0
[ - + + ] -    sum = +1
[ - + + - ]    sum = 0
- [ + ] + -    sum = +1
- [ + + ] -    sum = +2
- [ + + - ]    sum = +1
- + [ + ] -    sum = +1
- + [ + - ]    sum = 0
- + + [ - ]    sum = -1

请计算符合农夫约翰记忆的不同网格的数量。

输入格式

第一行包含 TT(1≤T≤1001\le T\le 100),即测试数据的组数。每组测试数据的格式如下:

第一行包含 RR,CC,和 XX(1≤R,C≤5⋅1051\le R,C\le 5\cdot 10^5,0≤X≤min⁡(105,RC)0\le X\le \min(10^5,RC)),意味着网格的尺寸为 R×CR\times C,且农夫约翰记得网格中 XX 个不同格子的值。

接下来的 XX 行每行包含一个字符 v∈{+,−}v\in \{+, -\},后跟两个整数 rr 和 cc(1≤r≤R,1≤c≤C1\le r\le R, 1\le c\le C),意味着网格第 rr 行第 cc 列的值是 vv。保证在单组测试数据中,没有有序对 (r,c)(r,c) 出现超过一次。

此外,保证所有测试数据中 RR 的总和与 CC 的总和都不超过 10610^6,且所有测试数据中 XX 的总和不超过 2⋅1052\cdot 10^5。

输出格式

对于每组测试数据,在单独的一行中输出网格的数量。

2
1 3 3
+ 1 3
+ 1 1
- 1 2
1 3 3
+ 1 1
+ 1 3
+ 1 2

1
0

1
2 2 0

7

以下是这 77 个网格:

++
++

++
+-

++
-+

+-
++

+-
-+

-+
++

-+
+-

数据范围与提示

  • 测试点 3-4: 对于所有测试数据,min⁡(R,C)=1\min(R,C)=1
  • 测试点 5-6: 对于所有测试数据,R,C≤10R,C\le 10
  • 测试点 7-11: ∑max⁡(R,C)2≤106\sum \max(R,C)^2 \le 10^6
  • 测试点 12-14: ∑RC≤106\sum RC \le 10^6
  • 测试点 15-22: 无额外约束

供题:Alex Chen