题意
给定 $n$ 个不重集合,第 $i$ 个集合大小为 $c_i$ ,初始全为开, 要求支持两种操作:
1 $x$ 表示将 $x$ 号集合开关状态反转。
2 $l$ $r$ 表示一次查询,要求输出区间 $[l, r]$ 内是否存在两个状态为开的不同集合存在相同的元素。
输入格式
第一行两个整数整数 n, m, 表示集合个数与询问个数。
接下来 n 行,表示 n 个集合。每行第一个数字 c 表示此集合的元素个数,接下来 c 个数为该集合元素。
接下来 m 行,表示 m 个询问。每行第一个数字 opt 表示询问类型,
若 opt = 1, 则接下来一个整数 x 表示需要转换开关状态的集合编号, 若opt = 2, 则接下来两个整数 l, r 表示询问的区间。
输出格式
对于每个二操作输出一行表示答案, 若有相同元素则输出 Yes, 否则输出 No。
样例输入
5 5
3 1 2 3
3 4 5 6
3 2 5 7
3 1 2 3
2 6 7
2 2 5
1 3
2 2 4
1 4
2 1 4
样例输出
Yes
No
No
数据范围:
对于所有子任务有 $n, m ≤ k$, 所有集合中最大的元素 $≤ 2k$,$c_i ≤ 2k$, $\sum c_i ≤ 10k$。
子任务编号 | $k=$ | 特殊限制 | 子任务分数 |
---|---|---|---|
$1$ | $10^3$ | - | 5 |
$2$ | $10^5$ | 集合随机生成 | 5 |
$3$ | $10^5$ | 无 1 操作 | 10 |
$4$ | $10^5$ | $c_i \le 20$ | 20 |
$5$ | $10^5$ | $l=1,r=n$ | 20 |
$6$ | $10^5$ | - | 40 |