线段树优化建图学习笔记

使用场景:单点向区间,区间向单点或区间向区间建边。
实现原理:用线段树的一个节点管辖一段图上区间的顶点。
实现步骤:

  1. 将原图中的顶点拆点(理论上,实际代码中不需要),出点和入点。
  2. 建立两棵线段树,出点的树和入点的树。
  3. 出点的树由子节点连向父节点,边权为 0,入点的树由父节点向子节点连边,边权为 0

使用方法:

  1. 单点 x 与单点 y 连边,则用出点的树上编号 outx 连向 y 的入点 iny
  2. 单点 x 向区间顶点 [lt,rt] 连边,outx 向入树的根节点递归连边。
  3. 区间顶点 [lt,rt] 向单点 x 连边,出树从根节点递归向 inx 连边。
  4. 区间顶点 [lt,rt] 向区间 [lt2,rt2] 连边,虚拟一个节点 v,转化为 23 连边。
posted @   Forever1507  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示