CF1140F Extending Set of Points

题目描述

给定一个二维点集 $S$,我们定义其扩展 $E(S)$ 为如下算法的结果: 新建一个二维点集 $R$,初始时 $R = S$。然后,只要存在四个数 $x_1$、$y_1$、$x_2$ 和 $y_2$,使得 $(x_1, y_1) \in R$,$(x_1, y_2) \in R$,$(x_2, y_1) \in R$,且 $(x_2, y_2) \notin R$,就将 $(x_2, y_2)$ 加入 $R$。当无法再找到这样的四元组时,$R$ 即为算法的结果。 现在,给定一个初始为空的二维点集 $S$,你需要处理两种操作:向 $S$ 中添加一个点,或从 $S$ 中删除一个点。每次操作后,你需要计算 $E(S)$ 的大小。

输入格式

第一行包含一个整数 $q$($1 \le q \le 3 \cdot 10^5$),表示操作次数。 接下来 $q$ 行,每行包含两个整数 $x_i$、$y_i$($1 \le x_i, y_i \le 3 \cdot 10^5$),表示第 $i$ 次操作:如果 $(x_i, y_i) \in S$,则将其从 $S$ 中删除,否则将其加入 $S$。

输出格式

输出 $q$ 个整数,第 $i$ 个整数表示处理完前 $i$ 次操作后 $E(S)$ 的大小。

说明/提示

由 ChatGPT 4.1 翻译