luogu#P8582. [CoE R5] 斑马王子

    ID: 12568 远端评测题 1000ms 128MiB 尝试: 1 已通过: 0 难度: 6 上传者: 标签>线段树洛谷原创O2优化字典树,Trie位运算洛谷月赛

[CoE R5] 斑马王子

题目背景

注意:此题 Sub #4 中 opti=3opt_i=3,可视作 opti=0opt_i=0。数据将稍后修复,修复后将另行通知。

UPD: 已修复。

题目描述

题意简述

有一长度为 k+1k+1 的数组 ss,下标依次为 00kk,初始时有 si=0 (0ik)s_i = 0 \ (0 \leqslant i \leqslant k)。 接下来给定 nn 个非负整数二元组 (li, ri)(l_i,\ r_i),记 T=i=1n[li, ri]T = \bigcup\limits_{i = 1}^n [l_i,\ r_i] ,将所有符合 iTZi \in T \bigcap \mathbb{Z}sis_i 赋值为 11。 在任意时刻,记 $S =\{ x |x \in \mathbb{Z} \bigwedge x \in [0,\ k] \bigwedge s_x = 0 \}$。接下来给定 mm 个非负整数三元组 (opti, ai, bi)(opt_i,\ a_i,\ b_i)

opti=0opt_i = 0 时,求:

$$t_i = \sum\limits_{x = a_i}^{b_i} \min\limits_{y \in S}(x \oplus y) $$

opti=1opt_i = 1 时,将所有符合 i[ai, bi]Zi \in [a_i,\ b_i] \bigcap \mathbb{Z}sis_i 赋值为 11

opti=2opt_i = 2 时,将所有符合 i[ai, bi]Zi \in [a_i,\ b_i] \bigcap \mathbb{Z}sis_i 赋值为 00

符号 Z\mathbb{Z} 表示全体整数,\oplus 表示异或。


原版题面

『斑马王子』统治着无垠的草原。

一条小河无息地流淌在草原的中央,与河流源头距离为 yy 的草地被赋予了 y (0yk)y \ (0 \leqslant y \leqslant k) 的『膜力』。

x (0xk)x \ (0 \leqslant x \leqslant k) 天,『斑马王子』的『潜力智商』为 xx

他会来到一片自己心仪的草地用膳,并以 xyx \oplus y 的『智商』开始新的一天。

有一种叫『猎人』的生物,热衷于剥夺草原居民的生命。

他们初始时设立了 nn 个形如 $(l_i,\ r_i) \ (0 \leqslant l_i \leqslant r_i \leqslant k)$ 的营地,用『枪』屠杀着所有在 [li, ri][l_i,\ r_i] 中驻足的生灵。

作为『斑马王子』的得力大臣,你需要回答他的若干个问题,以保证草原的安全。

在风云变幻的草原上,会依次发生 mm 个形如 $(opt_i,\ a_i,\ b_i) \ (0 \leqslant a_i \leqslant b_i \leqslant k , \ opt_i \in \{0,\ 1,\ 2\})$ 的事件。

opti=1opt_i = 1 时,事件 ii 代表猎人在 [ai, bi][a_i,\ b_i] 中全部驻扎了新营地。

opti=2opt_i = 2 时,事件 ii 代表斑马王子英勇的部队摧毁了 [ai, bi][a_i,\ b_i] 中的全部营地。

而当 opti=0opt_i = 0 时,斑马王子向你发出了灵魂拷问:

每一个问题中,『斑马王子』希望从第 aia_i 到第 bib_i(0aibik)(0 \leqslant a_i \leqslant b_i \leqslant k),在非『猎人』营地的草地用膳。『斑马王子』希望知道从第 aia_ibib_i 天,『智商』之和的最小可能值 tit_i

你苦思冥想,忽然,『枪』的吼叫声撕裂了空气,如果不在 1 sec1 \ sec 内回答问题 \dots \dots

输入格式

第一行输入整数 n, m, kn, \ m, \ k

接下来 nn 行,每行两个整数 li, ril_i, \ r_i,表示『猎人』的一个营地。

接下来 mm 行,每行三个整数 opti, ai, biopt_i,\ a_i,\ b_i,表示一组操作。

输出格式

对于第 ii 组操作 (1im)(1 \leqslant i \leqslant m),当 opti=1opt_i = 1opti=2opt_i = 2 时,不需要输出。

opti=0opt_i = 0 时,当所有草地都属于猎人的营地时,输出一行 Death,否则输出一行一个整数,表示 tit_i

0 16 3
0 0 3
1 3 3
0 0 3
1 1 2
0 0 3
2 1 3
0 0 3
1 0 0
1 1 1
0 0 3
0 1 2
0 1 3
1 2 3
0 2 3
2 3 3
0 2 3
0
1
6
0
4
2
2
Death
1

提示

数据范围

本题采用捆绑测试。

Subtask 1 (5 pts)\texttt{Subtask 1 (5 pts)}:对于 5%5\% 的数据,保证 0n,m,k200 \leqslant n,m,k \leqslant 20

Subtask 2 (5 pts)\texttt{Subtask 2 (5 pts)}:对于 5%5\% 的数据,保证 0n,m,k5000 \leqslant n,m,k \leqslant 500

Subtask 3 (15 pts)\texttt{Subtask 3 (15 pts)}:对于 15%15\% 的数据,保证 0n,m,k40000 \leqslant n,m,k \leqslant 4000

Subtask 4 (5 pts)\texttt{Subtask 4 (5 pts)}:对于 5%5\% 的数据,保证 opti=0opt_i = 0

Subtask 5 (70 pts)\texttt{Subtask 5 (70 pts)}:无特殊限制。

对于 100%100 \% 的数据, 0n, m, k2×1050 \leqslant n,\ m,\ k \leqslant 2 \times 10^50lirik0 \leqslant l_i \leqslant r_i \leqslant k0aibik0 \leqslant a_i \leqslant b_i \leqslant kopti{0, 1, 2}opt_i \in \{0,\ 1,\ 2\}