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

Daily Prob 5

这次不是什么级数求和了。


对于一个有根树,我们如下定义重链剖分:

对于每个点 \(a\),找到子节点中子树大小最大的那一个(如果有多个任取一个),记为 \(b\),然后将 \((a, b)\) 这条边设为重边。

不难发现重边会形成若干条链,称为重链。每个重链中离根最近的点称为重链顶。
接下来我们如下定义一次重链收缩:

重链剖分之后从下到上考虑每个点,若这个点向父节点的连边是重边,就删除这个点。
若连边不是重边,记为 \((a, b)\),就将 \(b\) 的父节点改为 \(a\) 所在重链的重链顶。

其实就是把所有重链顶都拿出来,保留祖先后关系建一个新的树。剩下的点都扔了。

不难发现一次重链收缩之后树的深度会变成 \(O(\log n)\)
接下来我们要证明:进行 \(B>1\) 次重链收缩之后树的深度是 \(O(\frac{\log n}{\log B})\),并且可以给出一个卡满的构造。


首先看上界证明。

考虑对于一个节点 \(a\) 和这个点的子节点 \(b\),不妨假设 \((a, b)\) 是重边。
那么不难发现在进行一次重链收缩之后 \(a\) 的其他子节点仍然不变,\(b\) 会被拆成若干小子树,且每个大小都不超过 \(\frac{size(b)}{2}\)

因此我们可以考虑将所有子节点子树按照 \(rnk(b) = \log size(b)\) 分组,每次我们会选 \(rnk\) 最大的子树,然后拆成一系列小的,大小和不超过 \(size(b)\)\(rnk\) 不超过 \(rnk(b) - 1\)
考察当我们枚举到 \(rnk = r\) 的子树的时候,由于总大小不会超过 \(size(a)\),所以数量不会超过 \(\frac{size(a)}{2^r}\)
因此进行 \(B\) 轮操作之后我们可以保证最大的 \(rnk\) 不超过 \(\log size(a) - \log B\)

也即,最后每个节点 \(a\) 的子节点子树大小都不会超过 \(\frac{size(a)}{B}\)
那么自然树的深度不超过 \(\frac{\log n}{\log B}\)


然后是构造。
考虑构建一个满 \(B+1\) 叉树即可。
那么对于每个非叶子,至少会存在一个子节点,使得这 \(B\) 次重链收缩都没有影响这两个点之间的边。
我们可以将其称为原始边。
所以从根一路走原始边一定可以走到叶子。并且这条链在这 \(B\) 次操作里面没有被动过。
所以深度和最初的树是一样的。
我们知道满 \(B\) 叉树深度是 \(\Theta(\frac{\log n}{\log B})\),所以就卡满了。


不难发现这个构造实际上适用于各种剖分方式。
也就是说无论以什么样的策略进行剖分,进行 \(B\) 轮之后的深度并不低于 \(\Omega(\frac{\log n}{\log B})\)
所以目前来看多次剖分什么的前途不是很大。


挂一个 contribute

http://www.rkmt.cn/news/112300.html

相关文章:

  • Applite:终极Mac软件管理神器,让Homebrew图形化操作如此简单
  • 如何实现 “右移”的智能监控,快速定位和恢复线上事故?
  • 在React Native中实现鸿蒙跨平台开发分享功能,你可以使用`react-native-share`库,这个库支持多种分享方式,包括文本分享、图片分享,甚至是文件分享
  • 告别命令行:Applite让Mac软件管理变得简单直观
  • 四步重塑小米AI音箱:从语音助手到全屋智能中枢的进化之路
  • Set和Get访问器and构造函数(析构函数)
  • vueproject
  • 大数据生态核心组件语法与原理入门
  • OBS Studio直播画质调优实战:从新手到专业的视觉进阶指南
  • SMUDebugTool深度解析:Ryzen系统性能调优完全指南
  • 绝区零一条龙:新手快速入门完整指南
  • 【智能体互联协议解析】AIP是MCP/A2A的替代品吗?
  • 5、图像编辑与色彩处理全攻略
  • 6、图层使用入门指南
  • LobeChat开源聊天界面实测:媲美ChatGPT的极致体验
  • 【智能体互联协议解析】ACPs/AIP为什么还在用“落后”的“中心化”架构?
  • BetterNCM插件:网易云音乐体验升级全攻略
  • LobeChat能否部署在边缘节点?低延迟交互实现
  • 2025年青少年洗护用品品牌首选椿草——祛痘沐浴露/青少年祛痘/青少年洗发水/青少年洗面奶/青少年护肤品,持久留香、淡化痘印,守护青春肌 - 全局中转站
  • 【嵌入式】CAN总线
  • 解密行政区划数据宝藏:从代码到地图的实战指南
  • 一键搞定Windows系统,牛批了
  • LobeChat能否设置使用额度?防止token滥用的方法
  • OBS Studio性能瓶颈深度解析与优化实战
  • 【time-rs】解释://! Invalid format description(error/invalid_format_description.rs)
  • 15 天搞定ASP.NET基于WEB的选课系统!附完整设计方案 + 源码思路
  • ROS2概念之分布式通信
  • 模拟电路元器件功能与设计介绍
  • 加热片与加热棒的介绍及推荐场景
  • 改版遇到的问题记录