#P10179. [2024年NOI模拟题]早八

[2024年NOI模拟题]早八

【题目描述】

在这一学期里一共有 nn 天,编号分别为 1,2,...,n1,2,...,n

为了大力打击旷课现象,学校安排了 mm 个签到打卡计划。第 ii 个计划将从第 lil_i 天持续到第 rir_i 天。若学生在这段时间内旷课至少一天,将会扣除 sis_i 的学分。

可是 Alice 实在是太困了,这导致她不得不选择几天旷课,以保证自己正常的精神状态。

Alice 将会用一个长度为 nn0101 串来表示自己的计划。若第 ii 个字符为 11,则表示 Alice 将会在第 ii 天旷课。初始 Alice 每天都不会旷课。

接下来她会对自己的计划进行 qq 次修改,第 ii 次修改将会把一段连续的区间 [ui,vu][u_i,v_u] 改为 0011。 现在请你对于 Alice 的每一次修改求出最终会被扣除多少学分吧!

【输入格式】

从文件 class.in 中读入数据。

本题部分数据强制在线。

第一行三个整数 n,m,opn,m,op

接下来 mm 行,每行三个整数 li,ri,sil_i,r_i,s_i。(数据可能存在 li>ril_i>r_i 的情况,需要判断并 swap\rm swap )

接下来一个整数 qq

接下来 qq 行,每行三个整数 tpi,ui,vitp_i,u_i',v_i' 表示一次事件。其中真实的 $u_i=u_i'\oplus (lastans\times op),v_i=v_i'\oplus (lastans\times op)$。若 ui>vi,swap(ui,vi)u_i>v_i,{\rm swap}(u_i,v_i)。然后把 [ui,vi][u_i,v_i] 改为 tpitp_ilastanslastans 表示上一次操作后的答案。若为第一次操作,则 lastans=0lastans=0

【输出格式】

输出到文件 class.out 中。

输出共 qq 行,第 ii 行表示第 ii 次操作后的答案。

【样例 1 输入】

4 2 0
1 2 5
4 4 8
3
1 1 4
0 2 4
0 1 1

【样例 1 输出】

13
5
0

【样例 1 解释】

第一个操作后,Alice 的计划为 11111111,此时答案为 5+8=135+8=13

第二个操作后,Alice 的计划为 10001000,第一个计划将会被发现旷课,此时答案为 55

第三个操作后,Alice 的计划为 00000000,全勤!

【样例 2】

见选手目录下的 class/ex_class2.in 与 class/ex_class2.out

【样例 3】

见选手目录下的 class/ex_class3.in 与 class/ex_class3.out

【样例 4】

见选手目录下的 class/ex_class4.in 与 class/ex_class4.out

该样例满足 tpi=1tp_i=1

【数据范围】

保证对于所有的测试点满足以下限制:$n,m,q\leq 2\times 10^5,1\leq l_i,r_i\leq n,1\leq u_i、v_i\leq n,s_i\leq 10^9,0\leq tp_i、op\leq 1$。

测试点编号 n,m,qn,m,q\leq 特殊性质
1 100100
2 \sim 3 10001000
4 \sim 7 2×1052\times 10^5 li=ril_i=r_i
8 \sim 12 tpi=1tp_i=1
13 \sim 16 op=0op=0
17 \sim 20