做题记录 26.2.1

QOJ #7765. Xor Master

\(F\) 表示 \(S_0\) 的线性基,令 \(F_{\min}(x)\)\(F_{\max}(x)\) 分别表示 \(x\) 异或 \(F\) 的一个子集所能得到的最小值和最大值

\(s\)\(a\) 的前缀异或和,则一次查询要求 \(\sum_{i=l}^r F_{\max}(s_i\oplus s_{l-1})\)

由于 \(F_{\max}(x\oplus y)=F_{\max}(x)\oplus F_{\min}(y)\),转化为查询 \(\sum_{i=l}^r F_{\max}(s_i)\oplus F_{\min}(s_{l-i})\)

\(t_i=F_{\max}(s_i)\)

操作 \(1\)\(s_x\gets s_x\oplus v\),等价于 \(\forall i\ge x,\;t_i\gets F_{\max}(s_i\oplus v)=F_{\max}(s_i)\oplus F_{\min}(v)=t_i\oplus F_{\min}(v)\),即对 \(t\) 的后缀异或上一个数

对于操作 \(2\),若插入 \(x\)\(F\) 不变必然对 \(t\) 无影响,否则假定用高斯消元法插入,实际插入的数值为 \(x'\),则对 \(t\) 的影响为 \(t_i\gets \max(t_i,t_i\oplus x')\),显然这一情况只会出现 \(O(\log V)\)

转化为维护一个序列,支持区间异或和查询区间和,使用类似 UOJ #671. 【UNR #5】诡异操作 的方法,精细实现可以做到 \(O(n\log V+q\log n\log V)\)

代码

参考

posted @ 2026-02-02 06:37  Hstry  阅读(0)  评论(0)    收藏  举报