P16327 线段
题目描述
你有一个可重集 $S$,每个元素是一个线段。初始你有 $n$ 个元素,第 $i$ 个元素为线段 $[l_i,r_i]$。
接下来有 $q$ 次操作,每次操作给出一个线段 $[L,R]$。**同时**检查当前的每个元素 $[l_i,r_i]$。若其与线段 $[L,R]$ 有交,则将相交的部分从原线段中分割出来,然后将剩下的几部分作为新的元素加入,并把原来的元素删掉。**新的元素不会参与本次操作,线段 $[L,R]$ 不会被加入 $S$**。
形式化地,令 $l'=\max(l_i,L) $,$r'=\min(r_i,R)$,若 $l'\le r'$:
- 将线段 $[l', r']$ 加入 $S$。
- 若 $l_i
输入格式
第一行两个正整数 $n,q$,表示初始元素个数和操作次数。
接下来 $n$ 行,每行两个正整数 $l_i,r_i$,表示每个初始元素 $[l_i,r_i]$。
接下来 $q$ 行,每行两个正整数 $L_i,R_i$,表示每次操作给出的区间 $[L_i,R_i]$。
输出格式
输出 $q$ 行,每行一个整数表示每次操作后的元素个数。
说明/提示
**【样例解释 1】**
初始有 $5$ 个线段 $[1,1],[10,10],[3,3],[3,3],[1,10]$。
第一个操作给定线段 $[2,8]$,与其有交的线段有 $[3,3],[3,3],[1,10]$,操作后 $[3,3]$ 保持不变,$[1,10]$ 变为 $[1,1],[2,8],[9,10]$,共有 $7$ 个元素。
第二个操作给定线段 $[3,10]$,与其有交有 $[10,10],[3,3],[3,3],[2,8],[9,10]$,其中只有 $[2,8]$ 会变为 $[2,2],[3,8]$,共有 $8$ 个元素。
第三个操作给定线段 $[1,3]$,与其相交的会变化的元素只有 $[3,8]$ 会变为 $[3,3],[4,8]$,共有 $9$ 个元素。
**【数据范围】**
**本题使用子任务捆绑**。
对于所有测试数据,$1 \le n,q \le 5\times10^5$,$1\le l_i \le r_i \le 10^9$,$1 \le L_i \le R_i \le 10^9$。
|子任务编号|$n,q\le$|特殊性质|分值|
|:-:|:-:|:-:|:-:|
|$1$|$200$|无|$20$|
|$2$|$2000$|无|$20$|
|$3$|$5\times 10^5$|有|$20$|
|$4$|$5\times 10^5$|无|$40$|
- 特殊性质:保证 $L_i = 1$。