#lg14985. [USACO26JAN1] Pluses and Minuses P

[USACO26JAN1] Pluses and Minuses P

[AdditionalFile5597.zip](file://AdditionalFile5597.zip?type=additional_file)

#5597. 「USACO 2026 First Platinum」Pluses and Minuses

标签: 传统 | 时间限制: 2000 ms | 内存限制: 256 MiB |

题目描述

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

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

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

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

作为一个例子,考虑行 + - - +\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

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

输入格式

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

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

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

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

输出格式

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

样例 1

输入

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

输出

1
0

样例 2

输入

1
2 2 0

输出

7

以下是这 77 个网格:

++
++

++
+-

++
-+

+-
++

+-
-+

-+
++

-+
+-

数据范围与提示

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

供题:Alex Chen