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

QOJ7411 Bitwise Xor

内部通道(jzyz P6035),与原题唯一不同在于一个也不选也算一种方案。
首先挖掘性质。将\(a_i\)从小到大排序后,\(a_i\oplus a_j\)的最小值一定在某一对相邻\(a_i\),即\(a_i\oplus a_{i+1}\)处取到。
简易证明:排过序后,对于相邻的\(i,j,k\),从最高位去考虑,要么是\(0,0,1\),要么是\(0,1,1\),那么选\(i,j\)\(j,k\)一定不会比选\(i,k\)大。由此,若任意相邻位置满足条件,则整个序列都满足条件。
那么设\(dp_i\)表示以\(a_i\)结尾的方案数。根据以上性质显然有:\(dp_i=1+\sum_{a_j<a_i}dp_j[a_j\oplus a_i\ge m]\)
考虑在 Trie 上DP。这个我以前还真没怎么写过,所以记录一下代码实现。
首先,记录\(val_u\)表示 Trie 上\(u\)号点代表路径的\(dp\)值之和。即在 Trie 上插入\(a_i\)对应的\(dp_i\)时,令路径上每个节点\(u\)\(val\)值加上\(dp_i\)
为了求\(dp_i\)在 Trie 上查询时,考察\(m\)二进制下当前位:
若为\(1\),则这一位必须与\(a_i\)的对应位不同,直接移动指针经过与\(a_i\)状态不同的边。
若为\(0\),则这一位无限制,由于排了序,当前Trie上插入的都比\(a_i\)小,直接累加与\(a_i\)状态不同的边到的节点的\(val\),然后移动指针经过与\(a_i\)状态相同的边。

点击查看代码
int n;
ll m, a[N], dp[N], son[N * 60][2], val[N * 60];struct Trie{int tt = 1;void insert(ll x, ll k){int p = 1;for(int i = 59; i >= 0; i--){int y = ((x >> i) & 1);if(! son[p][y]) son[p][y] = ++tt;p = son[p][y];(val[p] += k) %= mod;}}ll ask(ll x, ll lim){int p = 1;ll rs = 0ll;for(int i = 59; i >= 0; i--){int y = ((x >> i) & 1), z = ((lim >> i) & 1);if(z) p = son[p][1 - y];else rs += val[son[p][1 - y]], p = son[p][y];rs %= mod;}(rs += val[p]) %= mod;return rs;}
}T;signed main(){read();n = read(), m = readll();for(int i = 1; i <= n; i++) a[i] = readll();sort(a + 1, a + n + 1);ll res = 0ll;for(int i = 1; i <= n; i++){dp[i] = T.ask(a[i], m) + 1ll;dp[i] %= mod;T.insert(a[i], dp[i]);res += dp[i];res %= mod;}cout << (res + 1) % mod;return 0;
}
http://www.zskr.cn/news/16191.html

相关文章:

  • 完整教程:SOC-ESP32S3部分:25-HTTP请求
  • 第一次使用Ttpora
  • NKOJ全TJ计划——NP11744
  • ROIR 2025
  • python编写AI生常用匡架及使用指令集
  • 123123
  • 2025.10.5 2024CCPC郑州
  • 20250531MATLAB三维绘图 - 教程
  • 概率期望dp 复习笔记
  • 完整教程:爬虫--以爬取小说为例
  • 仅需3%训练数据的文本归一化技术
  • 完整教程:56、Ocelot 概述
  • 【音视频】FFmpeg 编码H265 - 实践
  • Windows系统安装MySQL Connector 利用C++ VS2022连接MySQL
  • C/C++与Java、Python、Go在各个阶段的区别
  • [省选联考 2025] 图排列 题解
  • 实用指南:UV 包管理工具:替代 pip 的现代化解决方案
  • 2025焚烧炉厂家权威推荐,技术实力与市场口碑深度解析
  • 从价值博弈到价值原语博弈的跃迁:降维解析与升维求解的工程实现——声明Ai研究
  • 2025电缆厂家最新推荐排行榜:深度解析青岛一缆等六家优质企业实力,助力精准选购
  • 1 洛谷题解修正器
  • 防止语言模型性能倒退的新方法
  • 2025 年电永磁吊具制造厂家 TOP 企业品牌推荐排行榜全新发布,含大型电永磁吊具,全覆盖,起重,小型,钢板,钢板电永磁吊具公司推荐!
  • 《独立开发者精选工具》第 019 期
  • [JVM] JVM内存调优 - 教程
  • 在MyBatis中collection属性的命名规则主要取决于传入参数的类型
  • Java求职面试:从Spring到微服务的技术挑战 - 实践
  • 2025CSP-S模拟赛59 比赛总结
  • MCP协议重构AI Agent生态:万能插槽如何终结器具孤岛?