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

P6072 『MdOI R1』Path

给定一颗无根树 \(|T|\)

求两条点不相交的路径,使得两条路径上边权的异或和加起来最大。

\[|T| \le 3\times 10^4 \]


这是一个经典 trick:

对于求两条点不相交路径,我们可以枚举点 \(x\),使得其中一条在 \(x\) 的子树内,另外一条在 \(x\) 的子树外。不难发现这样覆盖了所有的情况。


不妨以 \(1\) 为根。

那么对于这题,路径上的异或和等于前缀和的异或,那么相当于子树 内/外 选两个点异或最大。

对于子树内的情况,可以简单 01trie 启发式合并解决。复杂度 \(\mathcal O(n\log^2 n)\)

对于子树外的情况,我们先求出整个树上异或和最大的路径 \([x\rightarrow y]\)

那么很明显不在 \([1\rightarrow x]\cup[1\rightarrow y]\) 这个路径上的点的答案就是这条路径。

对于一个点,答案是整个树扣掉 dfn 上他的区间。

那么对于一条路径 \([1\rightarrow x]\) 上的每一个点,按深度从大往小考虑,他们的贡献区间单调包含,那么可以直接维护,复杂度 \(\mathcal O(n\log n)\)

总体复杂度 \(O(n\log^2 n)\)


还有更好的办法。

我们考虑假如子树外的答案相同,那么我们只需要最大化子树内的答案。

假如我们只考虑子树内的答案,那么显然一个点的祖先不会比他更劣。

\(1\) 为根考虑深度,假如我们把 \([1\rightarrow x]\cup[1\rightarrow y]\) 这条路径扣掉,整棵树会被分为若干个连通块。

这样,我们只需要考虑每个连通块的根。这意味着每个点只会被考虑到一次。

时间复杂度 \(\mathcal O(n\log n)\)

http://www.gsyq.cn/news/29702.html

相关文章:

  • P1601题解
  • 关于驻马店市 2025 中小学信息学竞赛的记录(入门级)(未完)
  • 游记——驻马店市2025中小学信息学竞赛(未完)
  • ABP - SqlSugar [SqlSugarModule、ISqlSugarClient、SqlSugarRepository]
  • Odoo18.0 对接 京东快递
  • 轮次检测模型 VoTurn-80M 开源,多模态融合架构;OpenAI 收购桌面助手 Sky:实时识别屏幕自然语言交互丨日报
  • SAP维护汇率的关键Tcode
  • 第4天(中等题 滑动窗口、哈希表)
  • 申威服务器安装Java11(swjdk-11u-9.ky10.sw_64.rpm)详细操作步骤(附安装包)
  • Linux下的拼音输入法 (3)
  • P2606 [ZJOI2010] 排列计数 分析
  • 实用指南:MacOS - Clang使用bits/stdc++.h - 非官方(竞赛用) - 通用方法
  • 设计模式:代码界的 “光之巨人” 养成指南(附 C++ 实战)
  • 详细介绍:17-Language Modeling with Gated Convolutional Networks
  • 算法分析--生成排列
  • 三大安全认证授权协议深度对比:OAuth、OpenID Connect与SAML
  • (简记)(自用)线段树区间拆分时间复杂度证明
  • SpringBoot整合缓存2-Redis
  • 10.24 CSP-S 模拟37 改题记录
  • NOI25D2T2
  • 数字人企业:数字人公司重点推荐与选择指南
  • 据说每邀请一位朋友加入Comet,您可以获得10刀乐奖励:D
  • 王炸!OpenAI 发布 Atlas 浏览器!!
  • 课后作业4
  • cn域名隐私保护
  • 【开题答辩全过程】以 M11289生鲜商城为例,具备答辩的问题和答案
  • Linux手动安装最新版 CMake
  • 2025年新疆喀纳斯旅游服务权威推荐榜单:新疆/阿勒泰/禾木深度游旅行社综合评测
  • 2025 OSCAR丨与创新者同频!Apache RocketMQ 邀您共赴开源之约
  • 2025年PSA制氮设备厂家权威推荐榜单:电解水制氢设备/氦气纯化系统/氘气回收纯化源头厂家精选