P14985 [USACO26JAN1] Pluses and Minuses P
题目描述
农夫 John 曾经在他牧场的地面上画了一个矩形网格。在每个单元格中,他画了一个 $\texttt{+}$ 或一个 $\texttt{-}$(分别代表 $+1$ 和 $−1$)。
随着时间的推移,颜料褪色了,农夫 John 现在只记得某些单元格的值。然而,农夫 John 记得关于原始绘画的一个重要事实:
在每一行和每一列中,任意连续子段内的值之和总是在 $−1$ 到 $2$ 之间(含端点)。
举个例子,考虑行 $\texttt{+ - - +}$。它不满足条件,因为子段 $\texttt{+ [ - - ] +}$ 的和是 $-2$。
但是,行 $\texttt{- + + -}$ 确实满足条件。
```none
[ - ] + + - 和 = -1
[ - + ] + - 和 = 0
[ - + + ] - 和 = +1
[ - + + - ] 和 = 0
- [ + ] + - 和 = +1
- [ + + ] - 和 = +2
- [ + + - ] 和 = +1
- + [ + ] - 和 = +1
- + [ + - ] 和 = 0
- + + [ - ] 和 = -1
```
计算与农夫 John 记忆相符的不同网格的数量。
输入格式
第一行包含 $T$($1\le T\le 100$),表示独立测试的数量。每个测试按以下格式指定:
第一行包含 $R$、$C$ 和 $X$($1\le R,C\le 5\cdot 10^5$,$0\le X\le \min(10^5,RC)$),表示网格的尺寸为 $R\times C$,且农夫 John 记得网格中 $X$ 个不同单元格的值。
接下来的 $X$ 行,每行包含一个字符 $v\in \{\texttt{+}, \texttt{-}\}$ 和两个整数 $r$ 和 $c$($1\le r\le R, 1\le c\le C$),表示网格第 $r$ 行第 $c$ 列的值为 $v$。保证在同一测试中,有序对 $(r,c)$ 不会出现多次。
此外,保证所有测试的 $R$ 之和与 $C$ 之和都不超过 $10^6$,且所有测试的 $X$ 之和不超过 $2\cdot 10^5$。
输出格式
对于每个测试,将网格数量输出在单独一行。
说明/提示
以下是七个网格:
```none
++
++
++
+-
++
-+
+-
++
+-
-+
-+
++
-+
+-
```
---
- 输入 $3$-$4$:所有测试中 $\min(R,C)=1$
- 输入 $5$-$6$:所有测试中 $R,C\le 10$
- 输入 $7$-$11$:$\sum \max(R,C)^2 \le 10^6$
- 输入 $12$-$14$:$\sum RC \le 10^6$
- 输入 $15$-$22$:无额外约束。
翻译由 DeepSeek V3 完成