题目描述
有 $ n $ 个集合 $ S_1, S_2, \cdots, S_n $,初始全为空,需要支持三种操作:
- $\tt 1 \, l \, r \, x $: 将 $ x $ 插入 $ S_l, \cdots, S_r $。
- $\tt 2 \, l \, r \, x $: 将 $ x $ 从 $ S_l, \cdots, S_r $ 删除。
- $\tt 3 \, u \, v $: 询问 $ S_u $ 是否为 $ S_v $ 的子集。
请留意数据范围。
输入格式
第一行两个正整数 $ n, m $,表示集合个数和操作个数。
接下来 $ m $ 行,每行为以下三种形式之一:
- $\tt 1 \, l \, r \, x $
- $\tt 2 \, l \, r \, x $
- $\tt 3 \, u \, v $
分别表示一种操作。
输出格式
对于每个操作 3,输出一行 YES 或 NO 以回答询问。
输入输出样例 #1
输入 #15 10
1 1 5 1
1 2 4 2
3 1 2
3 2 2
3 2 3
1 3 3 3
3 1 3
2 2 4 2
1 5 5 5
3 5 3
输出 #1
YES
YES
YES
YES
NO
说明/提示
【数据范围】
对于所有数据,有:
- $ 1 \leq n, m \leq 10^5 $
- $ 1 \leq x \leq 10^5 $
- $ 1 \leq l \leq r \leq 10^5 $
- $ 1 \leq u, v \leq 10^5 $
对于 1 操作,保证操作之前这些集合中均不包含 $ x $。
对于 2 操作,保证在这次操作之前有一个对应的 $ \tt 1 \, l \, r \, x $ 操作且这个操作插入的 $ x $ 没被删除。
对于 3 操作,令 $ LIM = |S_v| - |S_u| $,保证 $ 0 \leq LIM \leq 2 $,其中 $ |S_u|, |S_v| $ 分别表示集合 $ u, v $ 的大小。
\begin{array}{|c|c|c|} \hline \textbf{子任务} & \textbf{特殊性质} & \textbf{分值} \\ \hline 1 & n, m \leq 2000 & 6 \\ \hline 2 & x \leq 10 & 12 \\ \hline 3 & LIM = 0 & 12 \\ \hline 4 & LIM \leq 1 & 23 \\ \hline 5 & \textbf{无} & 47 \\ \hline \end{array}

鲁ICP备2025150228号