当前位置: 首页 > news >正文

和你的推式子过一辈子去吧。

问题

给定若干个数 \(a_1 \dots a_n\)\(q\) 次询问,或单点修改,或询问第 \(i\) 个数取 \([0,a_i]\) 中任意数时,\(n\) 个数异或和是 \(z\) 的方案数。

本题的正确做法应该是贪心,但是我的贪心能力为 \(0\),就十分诡异地发现这个东西可以推式子推出来。

一些记号:

  • \(\text{popc}(i)\)\(i\)\(1\) 个数。
  • \(\text{lb}(i)\)\(i\) 的最低二进制位,如 \(\text{lb}(4) = 4,\text{lb}(7) = 1\)
  • \(V\) 是值域,这里是 \(2^{60}\)

多个数的异或和,其实就是所有 \(\sum\limits_{j=0}^{a_i} x^j\) 做异或卷积。根据传统 FWT 的定义可以直接写出答案的式子就是:

\[\dfrac{1}{2^{\log{V}}}\sum\limits_{i=0}^{V-1} (-1)^{\text{popc}(z\&i)} \prod\limits_{j=0}^{n}\sum_{k=0}^{a_j}(-1)^{\text{popc}(k\&j)} \]

这个式子看似难以处理,我们先看看后面一部分。

先解决一个特例:

\[\begin{align*} \sum\limits_{i=0}^{2^k} (-1)^{\text{popc}(x\&i)} & = 2^{k-\text{popc}(x)}\sum\limits_{i=0}^{\text{popc}(x)} \dbinom{\text{popc}(x)}{i}(-1)^i \\ & = 2^{k-\text{popc}(x)}[\text{popc(x)} = 0] \\ & = 2^k[x=0] \end{align*} \]

我们又知道如果 \(a\) 可以拆成 \(\sum\limits_{i=1}^{n} 2^{c_i} (c_1 > c_2 > \cdots > c_n)\),那么 \([0,a]\) 就是 \([0,2^{c_1}-1] \cup [2^{c_1},2^{c_1} + 2^{c_2} - 1] \dots\) 这样一些二的次幂构成的区间,其中前面几位是确定的,后几位是自由的。根据上面的推导,只有自由部分和 \(x\) 无交集(自由部分低于 \(\text{lb}(x)\))时,才有贡献且一个数的贡献就是 \(1\)。经过精细推导后有如下式子:

下面记 \(C(n,x) = (n\&(x - 1)- n\&{x} + 1)\)

\[\sum_{i=0}^{n}(-1)^{\text{popc}(x\&i)} = (-1)^{\text{popc}(x\&n)}C(n,\text{lb}(x)) \]

http://www.wxhsa.cn/company.asp?id=1192

相关文章:

  • NKOJ全TJ计划——NP1397
  • LT9211C 芯片使用
  • 枚举类型
  • 用 C++ + OpenCV + Tesseract 实现英文数字验证码识别(完整可跑)
  • 2025中国HR SaaS市场分析与选型指南
  • jenkins部署消息发送至钉钉--jenkins配置
  • android java层字符串加密对抗
  • Windows10 RDP远程桌面连接被控端wifi自动断开解决
  • 2025春季杭电多校4题解
  • 2025春季杭电多校5题解
  • Window10 关闭Edge浏览器的多选项卡通过Alt+Tab组合键切换的方式
  • 云行 | 国云聚智 AI甬动,天翼云中国行宁波站成功举办!
  • 2025春季杭电多校3题解
  • 华为鸿蒙(4.0)应用开发(4)—ArkTs开发语言 – 每天进步一点点
  • 【人工智能通识专栏】第十讲:阅读理解 - 指南
  • jenkins部署消息发送至钉钉--钉钉配置
  • HyperWorks许可规划
  • [GCJ 2015 #3] River Flow
  • 2025ICPC网络赛第一场题解
  • 拦截抓浏览器数据DrissionPage的演示
  • 登录认证-下篇:基于 Redis 实现共享session登录
  • 用 Go + Tesseract 实现英文数字验证码识别
  • 基于MATLAB的CNN大气散射传播率计算与图像去雾实现
  • .net连接MYSQL数据库字符串参数详细解析(总结)
  • Kubernetes 数据存储
  • 软件工程第一次作业:自我介绍+软工五问
  • 软件著作权市场与加密货币趋势
  • The 3rd Universal Cup. Stage 37: Wuhan
  • 炸裂:SpringAI新版发布,终于支持断线重连了!
  • spring 事务实战:声明式vs 编程式