B3695 集合运算 3
题目背景
关于集合、交集、并集的定义请参考 https://www.luogu.com.cn/problem/B3633 。
以下给出对称差的定义:
对两个集合 $A, B$,规定 $A$ 和 $B$ 的对称差 $A \Delta B$ 为在 $A$ 中出现但不在 $B$ 中出现,或在 $B$ 中出现但不在 $A$ 中出现的元素。
例如,$A = \{1, 2, 3\}$,$B = \{2, 3, 5\}$,则 $A \Delta B = \{1, 5\}$
题目描述
给定 $n$ 个集合 $s_1, s_2, \dots s_n$,每个集合都含有 $[1, m]$ 之间的若干个整数。
现在,有 $q$ 次操作,每次操作如下:
- `1 x y`:将 $s_x$ 中的每个元素都加上 $y$,再删去其中大于 $m$ 的;
- `2 x y`:将 $s_x$ 中的每个元素都减去 $y$,再删去其中小于 $1$ 的;
- `3 x y`:查询 $s_x$ 和 $s_y$ 的**交集**的元素个数;
- `4 x y`:查询 $s_x$ 和 $s_y$ 的**并集**的元素个数;
- `5 x y`:查询 $s_x$ 和 $s_y$ 的**对称差**的元素个数;
输入格式
第一行有三个数,依次表示集合的个数 $n$,集合元素的最大值 $m$ 和操作次数 $q$。
第 $2$ 到第 $(n + 1)$ 行,每行有若干个整数,第 $(i + 1)$ 行的整数描述集合 $s_i$ 的元素:
每行首先有一个整数 $c_i$ 表示 $s_i$ 的元素个数,接下来有 $c$ 个互不相同的整数 $s_{i,1}, s_{i,2}, \dots s_{i, c_i}$ 表示集合 $s_i$ 里的元素。
接下来 $q$ 行,每行三个整数 $o, x, y$,表示一次操作。具体见『题目描述』。
输出格式
对于每个查询操作,请输出一行一个整数表示答案。
说明/提示
### 数据规模与约定
对于全部的测试点,保证 $1 \leq n,m,q \leq 3 \times 10^4$,$1 \leq \sum_{i = 1}^n c_i \leq 10^6$,$1 \leq x, y \leq n$,$1 \leq o \leq 5$。集合里的元素都是不超过 $m$ 的正整数。
感谢 @[Zyingyzzz](/user/434929) 提供 hack 数据一组。