每个 ai<230,按位独立考虑。对每一位,维护:
1 的下标;0 的下标。因为 \\&0 会把该位清零,∣1 会把该位置一,而 \\&1 与 ∣0 不改变该位,所以只需比较区间内“有效的 0”和“有效的 1”谁更靠后。
监控系统记录了长度为 n 的状态数组 a(下标从 1 开始)。运维人员会提出 q 次查询,每次给出 (op,l,r):当 op=1 时,从 al 起按 &、∣、&、∣、… 的顺序从左到右计算到 ar;当 op=2 时,从 al 起按 ∣、&、∣、&、… 的顺序从左到右计算到 ar。本题中 & 与 ∣ 不区分优先级,一律从左到右求值。x&y 表示按位与,x∣y 表示按位或。
约束:1≤n,q≤200000,0≤ai<230,1≤op≤2,1≤l≤r≤n。
第一行两个整数 n 和 q,表示数组长度与查询次数。 第二行 n 个整数 a1,a2,…,an。 接下来 q 行,每行三个整数 op、l、r,表示一次查询。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.