求助
  • 板块学术版
  • 楼主CAICAIA
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/15 10:18
  • 上次更新2024/3/15 15:51:50
查看原帖
求助
704655
CAICAIA楼主2024/3/15 10:18

请问这道题可以用可持久化线段树写吗?

题目描述

给定 nn 个整数构成的序列 aa,将对于指定的闭区间 [l,r][l, r] 查询其区间内所有满足 l≤i≤r∧L≤ai≤Rl \le i\le r \wedge L\le a_i \le R 的数量。

输入格式

第一行包含两个整数,分别表示序列的长度 nn 和查询的个数 mm。

第二行包含 nn 个整数,第 ii 个整数表示序列的第 ii 个元素 aia_i。

接下来 mm 行每次有三种操作:

1 l r x:对于区间[l,r][l, r]所有ii,将aia_i变为xx。

2 l r L R:查询闭区间 [l,r][l, r] 内所有满足l≤i≤r∧L≤ai≤Rl \le i\le r \wedge L\le a_i \le R 的数量(如果没有,则输出00)。

我们记 lastlast 表示上一次 22 操作的答案,则每次操作的 x,l,r,L,Rx,l,r,L,R 都要异或上 lastlast 才是真实的 x,l,r,L,Rx,l,r,L,R。初始 lastlast 为 00。

输出格式

对每个 22 操作,输出一行一个数表示这次查询的答案。

数据规模与约定

  • 对于 100%100\% 的数据,满足 1≤n,m≤2×1051 \leq n,m \leq 2\times 10^5,∣ai∣,∣L∣,∣R∣≤109|a_i|,|L|,|R|\leq 10^9,1≤l≤r≤n1 \leq l \leq r \leq n。

保证在操作过程中,所有∣ai∣≤109|a_i| \leq 10^9

2024/3/15 10:18
加载中...