尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CF241B

CF241B
📅 发布时间:2026/6/20 8:50:19

CF241B

给定 \(n\) 个数 \(a_1 \sim a_n\) 和整数 \(m\),要选出 \(m\) 个不同的数对 \((i, j)(i <j)\),使得 \(\sum a_i \oplus a_j\) 最大,求出这个最大值

\(n \le 5 \times 10^4, m \le \frac{n(n - 1)}{2}, 0 \le a_i \le 10^9\)

首先肯定是贪心的选最大的 \(m\) 个,但是如何找到一个优秀的选择(排列)方式呢?

发现其实不好搞,这时我们就可以想到(看题解得到)二分这 \(m\) 个中最小的那个。

设二分的 \(val\),如何 check 呢?可以枚举 \(a_i\),使用 01 trie 求出有多少个 \(a_j\) 满足 \(a_i \oplus a_j \ge val\),最后加起来除以二就算出来了有多少对 \((i, j), a_i \oplus a_j \ge val\)。

求出 \(val\) 之后计算出 \(\sum \limits_{a_i \oplus a_j \ge val} a_i \oplus a_j\) 即可。同样枚举 \(a_i\),预处理出 \(s_{u, x}\) 表示 01 trie 上 \(u\) 的子树的叶子节点中有多少个 \(a_i\) 第 \(x\) 位位 \(1\)。然后在 trie 上跑一遍,遇到 \(val\) 这一位为 \(0\) 的时候累加答案即可。最后还要除以二。

还有,因为 \(\ge val\) 的可能超过 \(m\) 个,还需要减掉多余的部分(这些都是 \(val\))。

时间复杂度:

  • 枚举 \(a_i\),算出多少个 \(a_i \oplus a_j \ge val\),是 \(O(n \log V)\),再套个二分。
  • 求和的时候,因为每个每一位都要算答案,是 \(O(n \log^2 V)\)
  • 两部分都是 \(O(n \log ^2V)\),所以总复杂度是 \(O(n \log^2V)\)。

难点在于要想到二分答案(因为直接贪心的选不好做。)

相关新闻

  • 蒟蒻入园
  • Level 6 → Level 7
  • 题解:qoj15502 字符串问题

最新新闻

  • 「指南」从零到一:Conda环境管理与实战避坑
  • 郑州黄金回收隐形套路大曝光,合扬无折旧费无手续费真实报价 - 奢侈品交易观察员
  • 2026 郑州靠谱黄金回收筛选标准,CCIC 认证合扬规避掉秤骗局 - 奢侈品交易观察员
  • 2026年惠州市贵金属旧料回收优质靠谱实体门店精选五家 黄金回收铂金回收白银回收彩金回收真实探店测评清单及联系方式推荐 - 前途无量YY
  • 碧蓝航线Alas自动化脚本:5分钟快速上手完整教程
  • 蓝桥杯实战解析:NE555定时器在单片机测频系统中的应用

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号