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

P13552 鱼类考古学

感觉上先做与运算肯定不优,尝试证明。\(a\otimes b=a+b-(a|b)\),故 \((a\otimes b)+c=a+b-(a|b)+c\geq (a+b)\otimes c=a+b+c-((a+b)|c)\)。这是因为 \(a|b\leq \max(a,b)\)。那么我们现在就是要将整个序列分成 \(k\) 个非空集合,对其内部与之后外部加和。即 \(\sum_{i=1}^{k}\otimes(S_i)=\sum a_i+M\),其中 \(M\) 指的是所有操作的或之和。之后我们发现,优先对高位为 \(0\) 的数进行或一定是优的,只有不够了才不得已对为 \(1\) 的情况进行或。

那么我们考虑字典树,\(f(u,k,m)\) 表示目前考虑到了节点 \(u\),还需要进行 \(k\) 次与操作,目前的值为 \(m\)。那么如果 \(u\) 是一个叶子节点,那么对答案的贡献显然就是 \((s_u-k)m\),也就是说我们只能无奈合并相同的元素 \(k\) 次,之后得到结果。其中 \(s_u\) 表示 \(u\)子树和。之后我们考虑 \(u_0\),如果 \(s_{u_0}>k\),就代表它们能够和 \(k\) 次还有冗余,它们就不会“污染”另一侧为 \(1\) 的值。所以直接往下遍历即可。又根据上面的公式,左子树可以直接被加和,故答案再加上左子树的和。否则我们只能先把它们都与成一个再去“污染”另一侧。因为如果我们不弄成一个的话就说明需要有更多的 \(0\) 去与 \(1\) 相结合。但是将按位与挂在另一侧下面不太好做,我们不仿直接插入到另一侧之中,这样就不会有这个问题了。

http://www.jsqmd.com/news/48652/

相关文章:

  • P14134 【MX-X22-T5】「TPOI-4E」Get MiN? Get MeX!
  • 20231427田泽航ipsec协议验证
  • 29232428 2025-2026-1 《网络与系统攻防技术》实验六
  • 《道德经》第三十八章 - 教程
  • 2025年必收藏的8款AI论文写作神器!助你高效搞定学术写作
  • bfs dfs板子默写 真的好怕像上次一样这种题AC不了啊
  • 贪心题目
  • 【做题记录】HZOJ 多校-数论/多校-字符串/多校-图论Ⅲ
  • 2025软件工程L班
  • 2025-11-23
  • Chainlit+LlamaIndex 多模态 RAG 开发实战7:从系统架构到功能落地,搞定 PDF/PPT/ 图片全类型文件处理 - 详解
  • 使用Ansible批量安装JDK
  • 使用OpenZeppelin编写可升级智能合约(代理) - all-in
  • 实用指南:【逻辑回归】从线性模型到逻辑回归
  • vuepress2.x支持vue2吗?
  • 贪心专题 1 做题记录
  • static 静态变量
  • 【IO多路转接】IO 多路复用之 select:从接口解析到服务器实战 - 详解
  • java sql注入的危害有哪些
  • 单片机控制继电器及其原理
  • 2025-09-10-Wed-T-Milvus
  • 【Linux】 层层递进,抽丝剥茧:调度队列、命令行参数、环境变量 - 指南
  • 字符串大小写转换
  • vitepress如何支持vue2组件
  • 2025.11.23
  • 20231427田泽航第十周预习报告
  • java linux环境变量
  • java linux服务器
  • 机器人世界杯物流联赛技术解析
  • fcitx5要一统江湖了