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

【学习笔记】珂朵莉树/颜色段均摊

定义

珂朵莉树(Chtholly Tree)也叫老司机树(ODT),是一种基于平衡树(一般用 set 或 map 实现)的维护颜色段均摊的暴力技巧,而非一种数据结构。

其核心思想是将值相同的一段区间合并成一个结点处理.相较于传统的线段树等数据结构,对于含有区间覆盖的操作的问题,珂朵莉树可以更加方便地维护每个被覆盖区间的值.可用于解决区间修改、区间加法、区间查询以及其他区间操作,在处理区间修改效率最高,适用于随机数据。

节点类型

struct node{int l,r,v;//左边界,右边界,颜色 bool operator<(node b){return l<b.l;}
}; 

节点存储

我们希望维护所有结点,使得这些结点所代表的区间左端点单调增加且两两不交,最好可以保证所有区间的并是一个极大的连续范围,此处用set维护区间

初始化时,向珂朵莉树中插入一个极长区间

split操作

split操作是ODT的核心,它接受一个 \(x\) ,把一个包含 \(x\) 的区间 \([l,r]\) 切分为 \([l,x)\)\([x,r]\) ,并返回后者的迭代器

auto split(int x) {auto it=odt.lower_bound(Node(x, 0, 0));if (it!=odt.end()&&it->l==x) return it;//x=l不需要切分 --it;//此处it是[l,r]的迭代器 int l=it->l,r=it->r,v=it->v;odt.erase(it);odt.insert(node(l,x-1,v));return odt.insert(node(x,r,v)).first;//insert的返回值是{插入元素的迭代器,插入是否成功} 
}
//返回值也可以是set<node>::iterator

assign操作

另外一个重要的操作:assign 表示对区间 \([l,r]\) 赋值为 \(v\)

void assign(int l,int r,int v) {auto itr=split(r + 1),itl= split(l);odt.erase(itl,itr);odt.insert(node(l, r, v));
}

perform操作

将珂朵莉树上的一段区间提取出来并进行操作.与 assign 操作类似,只不过是将删除区间改为遍历区间.

void perform(int l, int r) {auto itr=split(r+1),itl=split(l);for(;itl!= itr;++itl){//...}
}

map维护ODT懒得学,听说更简单??

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

相关文章:

  • 小红统计区间(easy)【牛客tracker 每日一题】
  • 2026北京信用卡协商TOP5机构实测:专业能力与口碑如何选? - 代码非世界
  • [AI提效-27]-2026年AI多媒体生成工具全景对比指南
  • [AI提效-26]-2026年多媒体创作工具全景指南
  • MATLAB代码:基于两阶段鲁棒优化算法的多微网联合调度及容量配置 关键词:多微网 优化调度 ...
  • 编译生成方法二:手动写cmake脚本
  • 编译生成方法一:build_oai --phy_simulators
  • 基于5G的车辆跟驰预警系统(论文+源码)
  • 基于物联网的超市智能自助购物系统设计(论文+源码)
  • 基于RFSOC+VU13P在复杂电磁环境构设中技术应用分析
  • 编译生成方法三:CMakePresets.json
  • 2026更新版!8个一键生成论文工具测评:自考毕业论文+开题报告高效写作指南
  • python高校体育馆场地预约系统 商品购买系统小程序
  • RFSOC与ADRV9009、AD9026、AD9361技术指标及应用场景对比分析
  • 牛B,登上GitHub Trending的国产神器:把RAG应用装进手机只要3行代码~~~
  • Pimp My LLM Leveraging Variability Modeling to Tune Inference Hyperparameters
  • 关节养护指南:手指关节炎吃保健品哪个品牌好(品牌榜单) - 品牌排行榜
  • 『科技』翁家翌访谈播客
  • Predicting Contextual Informativeness for Vocabulary Learning using Deep Learning
  • 本科生收藏!千笔AI,用户挚爱的降AIGC工具
  • 2026年伺服电子压力机生产厂家口碑推荐榜,这些市场佼佼者别错过!整形机/伺服热压机,伺服电子压力机公司口碑推荐榜 - 品牌推荐师
  • 导师推荐!顶流之选的降AI率软件 —— 千笔·专业降AI率智能体
  • 2026别错过!10个AI论文网站深度测评,继续教育毕业论文写作必备工具推荐
  • 数据的逻辑处理
  • 手动写cmake脚本
  • 基于ssm的社区居家服务系统_k61a6rq6
  • UG NX 曲面和实体缝合
  • 刷题学习笔记
  • 在线学习交流系统学习资料视频签到python-vue
  • 基于Springboot的合工大社团信息管理系统分析与设计