CF1303F Number of Components
题目描述
给定一个 $n \times m$ 的矩阵,初始时所有元素均为 $0$。我们用 $a_{i, j}$ 表示矩阵第 $i$ 行第 $j$ 列的元素。
如果两个格子有公共边且它们的元素值相等,则称这两个格子是连通的。如果存在一个序列 $s_1, s_2, \ldots, s_k$,使得 $s_1$ 是第一个格子,$s_k$ 是第二个格子,且对于每个 $i \in [1, k-1]$,$s_i$ 和 $s_{i+1}$ 是连通的,则称这两个格子属于同一个连通块。
你将得到 $q$ 个操作,每个操作为 $x_i$ $y_i$ $c_i$($i \in [1, q]$)。对于每个操作,你需要执行以下两步:
1. 将 $a_{x, y}$ 替换为 $c$;
2. 统计当前矩阵中的连通块数量。
还有一个额外的限制:对于每个 $i \in [1, q-1]$,有 $c_i \le c_{i+1}$。
输入格式
第一行包含三个整数 $n$、$m$ 和 $q$($1 \le n, m \le 300$,$1 \le q \le 2 \times 10^6$),分别表示矩阵的行数、列数和操作数。
接下来 $q$ 行,每行包含三个整数 $x_i$、$y_i$ 和 $c_i$($1 \le x_i \le n$,$1 \le y_i \le m$,$1 \le c_i \le \max(1000, \lceil \frac{2 \times 10^6}{nm} \rceil)$)。对于每个 $i \in [1, q-1]$,有 $c_i \le c_{i+1}$。
输出格式
输出 $q$ 个整数,第 $i$ 个整数表示执行前 $i$ 次操作后,矩阵中的连通块数量。
说明/提示
由 ChatGPT 4.1 翻译