求问这一类题目的下界/较优复杂度
  • 板块学术版
  • 楼主yizhiming
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/9 20:25
  • 上次更新2024/4/9 22:11:51
查看原帖
求问这一类题目的下界/较优复杂度
369399
yizhiming楼主2024/4/9 20:25

给定一个大小为 nn 的序列 aa,以及两个参数 op1,op2op1,op2,qq 次给定区间 [l,r][l,r],求 [l,r][l,r] 中 f(a[x],a[y])f(a[x],a[y]) 的最值,其中 l≤x,y≤rl\leq x,y \leq r,若 op1=1op1=1 则求最小值,否则最大值。

f(i,j)f(i,j) 表示 i≤ji\leq j 时,⊕k=ijk\oplus _{k=i}^{j} k,若 op2=0op2=0,则该符号表示异或和,若为 11 则为或和,否则为与和。

强制在线。

值域为 10610^6。

以上 66 种问题的做法是否有较好做法。

下述认为 n,qn,q 同阶。

当然或和与按位反转之后等价。

令 O(k)O(k) 表示算任意两个数上述的贡献的复杂度。

在值域较小的情况下,显然有 ST 表预处理后的 O(1)O(1) 查询。

若值域较大,我的朋友说可以 O(log⁡V)O(\log V) 算,在 long long 范围内可以分段打表做到 O(1)O(1)。

我们现在已有:求或和最大值/与最小值,O(n(log⁡n+k))O(n (\log n+k)),这种等价于查询区间最小值最大值得贡献。

或和最小值/与和最大值:贡献只会在值域相邻点对取得,可以做到 O(nkn)O(nk\sqrt n)。

异或最小值/最大值,由于这道题难以使用排序后异或最小值在相邻取到的结论,所以目前能做到的都是 O(nnlog⁡V)O(n\sqrt n\log V)。

相关题目:Link

均是由上面这道题扩展出来的。

2024/4/9 20:25
加载中...