空间线性的线段树分治

省流:下面有代码框架。


先看一个朴素做法。

仍然是线段树,每个节点开一个 vector
对于每个区间修改,我们维护 \(l, r\) 和需要进行的修改,全都扔到根节点的 vector 里面。
然后 dfs 整棵树,到达节点 \(i\) 时,将包含整个区间的修改都做了,然后剩下的修改分别扔到左右子节点的 vector 即可。
最后先清空当前节点的 vector(需要释放内存),然后分别递归左右子树。

我们知道这一朴素做法的空间是 \(O(n \log n)\) 的。

Q:那和先把区间修改拆到 \(O(\log n)\) 个节点上的写法有什么区别呢?
A:随机数据下上述做法的空间复杂度是 \(O(n)\) 的。

关于证明,考虑每个区间都会被拆成一个前缀修改和一个后缀修改。
这里我们只考虑前缀修改即可。
考虑每次只有 \(\frac{1}{2}\) 的概率跨过 mid,跨过 mid 的时候才可能给右子树贡献 \(1\) 的空间。
所以期望意义下一个前缀修改给叶子贡献的空间复杂度是 \(O(1)\) 的。

关于 hack,全是 \([2, n - 1]\) 就卡满了。


然后是常见的做法。
还是上述实现,但是把 dfs 改成 bfs
这个空间是 \(O(n)\) 的,也算是比较常见的写法了。

关于证明,考虑线段树进行区间修改的时候,同一个深度的节点至多访问 \(4\) 个。
因此同一深度下每个修改至多被拆成四份。
所以空间就是线性的。


你说得对但是写个 bfs 也太麻烦了。
这里介绍一种更简单的方法。

还是上述做法,对于一个节点,我们统计一下跨过 mid 的前后缀数量,分别记为 \(x, y\)
\(x > y\),那么我们先递归左子树后递归右子树。
\(x \le y\),那就先递归右子树再递归左子树。

酱紫空间就是线性的了。贴个代码。

void div(int a, int l, int r)
{if (l == r)return;int mid = (l + r) / 2, cnt1 = 0, cnt2 = 0;for (node i : vec[a])if (i.l <= l && r <= i.r){// 覆盖当前区间,拿去处理}else{if (i.l <= mid){vec[a * 2].push_back(i);cnt1 += (i.r >= r);}if (i.r > mid){vec[a * 2 + 1].push_back(i);cnt2 += (i.l <= l);}}vector<node>().swap(vec[a]);if (cnt1 <= cnt2){div(a * 2, l, mid);div(a * 2 + 1, mid + 1, r);}else{div(a * 2 + 1, mid + 1, r);div(a * 2, l, mid);}// 撤销
}

好的,现在来到证明环节了。
考虑若当前在节点 \(i\),使用的总空间有多少。
我们可以把存储的修改分成两种,一种是覆盖整个区间的,另一种是不覆盖的。
不难发现任意时刻不覆盖整个区间的修改量是 \(O(n)\) 的,因为每个区间修改至多分裂出来一个前缀修改和一个后缀修改。
接下来考虑覆盖整个区间的。也就是说我们要统计,对于 \(i\) 的祖先链,向 \(i\) 的方向递归且给另一个子节点留下的覆盖整个区间的修改个数。

考虑任意一个祖先节点 \(a\),不妨设 \(i\)\(a\) 的左子树,跨过 mid 的前缀有 \(x\) 个后缀有 \(y\) 个。
于是我们有 \(x \ge y\),且这一步贡献的空间复杂度是 \(y\)
同时,对于所有的前缀,在递归进入 \(a\) 的左儿子之后就会被删除(因为覆盖了整个区间),且在回溯之前都不会再出现。
那我们不妨将这 \(y\) 份空间复杂度均摊到 \(x\) 个前缀上面。每个位置分到的复杂度是 \(O(1)\) 的。
由于总修改数量是 \(O(n)\) 的,所以任意时刻空间复杂度 \(O(n)\)

完结撒花!


貌似空间线性的线段树分治写法有好多种,比如先扔进左儿子,然后回溯的时候再把区间取回来的。
不过目前我所知道的写法里面这个应该算是最简单的了。
模板题,<20M

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/965301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年石棉橡胶板厂家联系方式推荐:品质服务双保障

在工业密封材料领域,石棉橡胶板因其耐高温、耐油、耐酸碱及优异的压缩回弹性能,仍是电力、石化、冶金、造船等行业管道法兰、压力容器密封的首选。2025年,随着设备检修周期缩短、项目集中开工,用户对“靠谱厂家+快…

2025年石棉橡胶板厂家联系方式推荐:质量认证齐全厂商盘点

在工业密封材料采购中,石棉橡胶板因耐高温、耐油、耐酸碱等特性,仍是电力、石化、冶金、造船等行业的刚需。2025年,随着设备升级周期缩短,企业对板材的交货速度、环保指标、售后响应提出更高要求。如何快速锁定货源…

两款开源工具推荐:科学信息检索导航 LaTeX 在线阅读器,科研效率提升利器!

在信息密度日益增长的时代,科研工作者、学生和开发者都面临着一个共同问题:如何快速获取高质量信息、如何高效处理学术文档?今天推荐两款由 Mutantcat Working Group 开发的开源工具,分别面向科学信息检索与 LaTeX…

2025年AI客服品牌最新top4专业评测:AI销冠在线自动回复

随着人工智能技术的深度发展,AI客服已成为企业提升服务效率、降低运营成本的核心工具。本榜单基于技术先进性、功能完整性、服务覆盖度、用户口碑四大维度,结合行业调研数据及企业实际应用反馈,对2025年主流AI客服服…

2025年石棉橡胶板厂家联系电话推荐:全国供货渠道大全

在工业密封材料采购中,石棉橡胶板因其耐高温、耐油、耐酸碱的特性,被广泛应用于电力、石化、冶金、造船等关键领域。2025年,随着设备维护周期缩短、工程项目集中开工,市场对“现货快、质量稳、价格合理”的石棉橡胶…

C++STL_1

template类(模板函数类): 1.template T Max(T x, T y){ if(x > y){ return x; }else{ return y; } } 这是一个模板类的例子----->> T可以是任何类型 2. 以上述的Max函数为例:Max(x,y)----->>隐式 Ma…

完整教程:毕设项目基于python的旅游文化推广管理系统\251019(白嫖源码+演示录像)可做计算机毕设JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、文案

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年AI获客服务商最新top5评测:数据分析、市场预测、客户服务多场景覆盖

随着人工智能技术在商业领域的深度渗透,AI获客已成为企业突破增长瓶颈的核心战略。本榜单基于技术创新性、行业适配度、服务实效性三大维度,结合企业实际案例反馈,权威解析2025年广东地区五大AI获客品牌综合实力,为…

2025年比较好的工装定制TOP实力厂家推荐榜

2025年比较好的工装定制TOP实力厂家推荐榜行业背景与市场趋势随着企业形象管理意识的不断提升,工装定制行业正迎来新一轮发展机遇。据中国服装协会2024年发布的《中国职业装行业发展报告》显示,2023年中国职业装市场…

2025年11月天津电商财税公司排名:五强口碑与能力综合评测

站在2025年末的节点,天津跨境电商综试区政策红利持续释放,电商卖家面临“多平台收入对账、出口退税时效、境内外主体合规”三重夹击。很多创始人白天盯运营、晚上对报表,稍不留神就触发税务预警;有人刚准备融资,却…

11.14 完成项目计划管理系统(idea中使用Mysql(9.4)Tomcat(11)jdk(21.0.8)) - GENGAR

一. 创建项目 注意:项目属性选择java 构建系统选择Maven 演示图片所用jdk版本为21.0.8二. 连接数据库 注意:演示图片Mysql版本为9.4 确保数据库已经打开 (1)首先检查Mysql是否已经打开 同时按住win+R,显示如下界面…

2025年11月天津电商财税公司榜单:五家服务商综合对比与选型建议

双十一刚过,天津跨境电商卖家林先生在整理平台结算单时发现:境内平台已代扣代缴,境外平台却仍需自行申报出口退税;同时,公司小规模纳税人身份即将突破500万元销售额,若不及时升级为一般纳税人,发票链将断裂,订…

2025年知名的工程级液压浴室夹厂家最新实力排行

2025年知名的工程级液压浴室夹厂家最新实力排行行业背景与市场趋势随着建筑装修行业向高品质、精细化方向发展,工程级液压浴室夹作为卫浴五金的关键部件,其市场需求持续增长。据中国五金制品协会最新数据显示,2024年…

2025年口碑好的电视柜缓冲铰链高评价厂家推荐榜

2025年口碑好的电视柜缓冲铰链高评价厂家推荐榜行业背景与市场趋势随着家居智能化与品质化需求的不断提升,电视柜作为客厅核心家具之一,其功能性与耐用性日益受到消费者重视。据中国五金制品协会2024年数据显示,国内…

2025年热门的温室生长灯热门厂家推荐榜单

2025年热门的温室生长灯热门厂家推荐榜单行业背景与市场趋势随着全球农业现代化进程加速和设施农业的蓬勃发展,温室生长灯作为现代农业的核心装备之一,正迎来前所未有的市场机遇。据国际农业照明协会(IAL)最新报告显…

智谱智能体接入

1、Post地址: $url = "https://open.bigmodel.cn/api/llm-application/open/v3/application/invoke" 2、写入Bearer 3、json格式:{"app_id": "8022231040","conversation_id&quo…

2025年口碑好的双螺杆清洗料厂家最新推荐排行榜

2025年口碑好的双螺杆清洗料厂家最新推荐排行榜行业背景与市场趋势随着塑料加工行业的快速发展,双螺杆清洗料作为生产过程中不可或缺的辅助材料,其市场需求呈现稳定增长态势。据中国塑料加工工业协会最新数据显示,2…

2025年质量好的玻璃温室智能厂家最新实力排行

2025年质量好的玻璃温室智能厂家最新实力排行行业背景与市场趋势随着现代农业技术的快速发展和国家对智慧农业的政策支持,玻璃温室产业迎来了前所未有的发展机遇。据中国农业机械化协会温室园艺分会最新数据显示,202…

P8127 [BalticOI 2021] The Xana coup (Day2) 分析

题目概述 给你一颗树并且每个点上面有点权,你可以进行一次操作:选择一个点将他自己和与他距离为 \(1\) 的点的点权全部异或 \(1\)。 求最少多少次操作使得每个点的点权都是 \(0\)。 分析 遇到这种题目,一般都是先考…

2025年质量好的耙犁片TOP实力厂家推荐榜

2025年质量好的耙犁片TOP实力厂家推荐榜行业背景与市场趋势随着全球农业机械化程度不断提高,耙犁片作为农业机械的关键部件,市场需求持续增长。据《2024-2029年全球农业机械零部件市场分析报告》显示,2023年全球耙犁…