#P8861. 线段

    ID: 8031 Type: RemoteJudge 3000ms 1024MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>线段树堆洛谷原创O2优化分治洛谷月赛

线段

题目描述

有一个初始为空的线段集,你需要处理 qq 组询问,每组询问的格式为如下三种之一:

  1. 加入一条新线段 [li,ri][l_i,r_i]。
  2. 将线段集里所有与 [li,ri][l_i,r_i] 相交的线段修改为其与 [li,ri][l_i,r_i] 的交。
  3. 求出线段集里所有与 [li,ri][l_i,r_i] 相交的线段与 [li,ri][l_i,r_i] 的交的长度和。

两条线段 [a,b],[c,d][a,b],[c,d] 相交,当且仅当 max⁡{a,c}≤min⁡{b,d}\max\{a,c\} \leq \min\{b,d\},它们的交为 [max⁡{a,c},min⁡{b,d}][\max\{a,c\},\min\{b,d\}]。

一条线段 [a,b][a,b] 的长度为 b−ab-a。

在部分测试点中,你需要在线地进行这些操作。

注意:在本题中,线段可能退化为单点。

输入格式

第一行两个正整数 qq 和 typetype,分别表示操作次数和强制在线参数。

接下来 qq 行,每行三个正整数 opt,li′,ri′opt,l_i',r_i',其中 optopt 表示操作类型。

我们记 lastlast 表示上一次 33 询问的答案(lastlast 初始为 00),则真实的 $l_i = ( l_i' + type \times last ) \bmod ( 2 \times 10^5 + 1 ), r_i = ( r_i' + type \times last ) \bmod ( 2 \times 10^5 + 1 )$。

数据保证 1≤li≤ri≤2×1051 \leq l_i \leq r_i \leq 2 \times 10^5。

输出格式

对于每个 33 询问,输出一行表示答案。

9 0
1 1 5
1 6 8
1 2 3
3 3 8
2 4 6
1 5 9
2 2 7
3 2 7
3 3 6

4
4
2

提示

【样例解释】

每次操作后的线段集:

  • 第一次后:{[1,5]}\{ [1,5] \}
  • 第二次后:{[1,5],[6,8]}\{ [1,5],[6,8] \}
  • 第三次后:{[1,5],[6,8],[2,3]}\{ [1,5],[6,8],[2,3] \}
  • 第五次后:{[4,5],[6,6],[2,3]}\{ [4,5],[6,6],[2,3] \}
  • 第六次后:{[4,5],[6,6],[2,3],[5,9]}\{ [4,5],[6,6],[2,3],[5,9] \}
  • 第七次后:{[4,5],[6,6],[2,3],[5,7]}\{ [4,5],[6,6],[2,3],[5,7] \}

【数据范围】

记 k1,k2,k3k_1,k_2,k_3 分别为 opt=1,2,3opt=1,2,3 的询问个数。

测试点编号 k1≤k_1 \leq k2≤k_2 \leq k3≤k_3 \leq type=type= 特殊性质
1∼21 \sim 2 100100 =0=0 无
3∼53 \sim 5 10510^5 55 3×1053 \times 10^5
6∼86 \sim 8 10510^5 11 所有 22 操作在所有 11 操作之后
9∼129 \sim 12 3×1053 \times 10^5
13∼1713 \sim 17 li≤105≤ril_i \leq 10^5 \leq r_i
18∼2018 \sim 20 5×1045 \times 10^4 无
21∼2521 \sim 25 10510^5 =1=1

对于所有数据,1≤q≤5×1051 \leq q \leq 5 \times 10^5, k3≥1k_3 \geq 1, 0≤li′,ri′≤2×1050 \leq l_i',r_i' \leq 2 \times 10^5, 1≤li≤ri≤2×1051 \leq l_i \leq r_i \leq 2 \times 10^5,0≤type≤10 \leq type \leq1,1≤opt≤31 \leq opt \leq 3。