斜堆学习笔记+复杂度证明

和左偏树几乎一模一样,唯一的区别是左偏树合并后判断如果左儿子深度小于右儿子则交换左右儿子,而斜堆直接无脑交换

复杂度是均摊的 O(nlog⁡n)O(n\log n)O(nlogn)

证明:

定义重结点为右儿子大小大于左儿子的结点,否则为轻结点。

定义右路径为一直往右走的路径,包不包含自己不重要。

定义势能 Φ\PhiΦ 为所有结点右路径上的重结点的个数之和。显然初始势能为 000,最终势能非负。

考虑一次合并的两个点 u,vu,vu,v,设它们右路径上轻、重点个数分别为 lu,hu,lv,hvl_u,h_u,l_v,h_vlu,hu,lv,hv

那么这次合并的实际代价为 lu+hu+lv+hvl_u+h_u+l_v+h_vlu+hu+lv+hv

而在右路径上,一个重结点右儿子本来就比左儿子重,合并又发生在右儿子,交换后左儿子大于右儿子,所以合并后重结点一定会变轻结点。

考虑最坏情况,所有轻结点都变成重结点,势能增加量 ΔΦ=lu+lv−hu−hv\Delta \Phi=l_u+l_v-h_u-h_vΔΦ=lu+lvhuhv

均摊后的代价为实际代价+势能增加量,即 2(lu+lv)2(l_u+l_v)2(lu+lv)

显然右路径的轻结点个数为 log⁡\loglog 级别的,所以总复杂度为 O(nlog⁡n)O(n\log n)O(nlogn)

所以整棵树的深度还是没保证……

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

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

相关文章

《ASP.NET Core 高性能系列》致敬伟大的.NET斗士甲骨文

写在开始三年前,曾写过一篇文章:从.NET和Java之争谈IT这个行业,当时遭到某些自认为懂得java就了不起的Javaer抨击,现在可以致敬伟大的.NET斗士甲骨文了  (JDK8以上都需要收费,Android弃用java作为第一语言,别高兴:OpenJDK是甲骨文的).《ASP.NET Core 高性能系列》是一套如何编…

【NOIP2017】逛公园【最短路DAG】【dp】【拓扑排序】

题意:给一张帯权有向图,求 111 到 nnn 长度不超过最短路长度 kkk 的路径条数 模 PPP。有无数条输出 −1-1−1 。 n≤105,m≤2105,k≤50n\leq 10^5,m\leq 2\times 10^5,k\leq 50n≤105,m≤2105,k≤50,边权非负 先往最短路图想 发现 kkk 很小…

Codeforces Round #599 (Div. 2) E. Sum Balance 图转换 + 子集dp + 环

传送门 文章目录题意:思路:题意: 思路: 首先我们知道如果所有数的和summodk!0sum\bmod k!0summodk!0那么此时无解,否则我们设needsum/kneedsum/kneedsum/k。 看到kkk这么小,自然的想到是否能状压&#xff…

资深开发者们是如何读书的?---线下读书会记录

读了多少书?怎么读书?——请问大家最近读书了吗?一年大概读了多少本书。有超过20本,超过30本,超过50本吗?在7月14日由长沙互联网活动基地和长沙.NET技术社区组织的小型社区活动,《开发者爱读书•…

【APIO2018】Duathlon 铁人两项 【圆方树】

题意:给一张 nnn 点 mmm 边的简单无向图,求有多少个三元组 (s,c,f)(s,c,f)(s,c,f) ,满足存在一条从 sss 到 fff 经过 ccc 的简单路径。 n≤105,m≤2105n\leq 10^5,m\leq 2\times 10^5n≤105,m≤2105 首先这个 “经过 ccc 的简单路径” &…

Codeforces Round #598 (Div. 3) E. Yet Another Division Into Teams dp + 输出方案

传送门 文章目录题意:思路:题意: 给你一个长度为nnn的序列aaa,你需要将其分成若干组,每组的价值为max⁡(ai)−min(ai)\max(a_i)-min(a_i)max(ai​)−min(ai​),求如何分组才能使得代价最小,输出…

架构杂谈《三》

一致性问题前面的《架构杂谈一》和《架构杂谈二》 杂谈了从服务化到微服务架构的演进,并肯定了服务化和微服务架构是一脉相承的。微服务在服务化架构的基础上,对服务化的细节和方案进行了优化和细化,重点突出了无中心化管理的微服务架构&…

【SDOI2018】战略游戏【圆方树】【虚树】

题意:给一张 nnn 点 mmm 边的连通无向图,qqq 次询问,每次给出一个点集 SSS ,求有多少个不在 SSS 中的点满足删除后 SSS 中存在两个点不连通。 n≤105,m≤2105,∑∣S∣≤2105n\leq 10^5,m\leq 2\times 10^5,\sum |S|\leq 2\times 1…

Codeforces Round #598 (Div. 3) F. Equalizing Two Strings 思维 + 逆序对

传送门 文章目录题意:思路:题意: 给你两个长度为nnn的串a,ba,ba,b,每次可以同时翻转a,ba,ba,b中任意一段长度为L(1≤L≤n)L(1\le L\le n)L(1≤L≤n)的子串,问能否通过若干次操作使两个串相同。 思路: 首…

腾讯发布 Tencent SCF Toolkit VS Code 插件,轻松开发无服务器云函数

在之前的文章中,我们提到了亚马逊、谷歌、IBM 等大厂都上了 Visual Studio Code 的船。阿里巴巴也在近日发布了 Aliyun Serverless VS Code 插件。近期,腾讯也上了 VS Code 的船,发布了基于 VS Code 的 Tencent SCF Toolkit 插件,…

Codeforces Round #726 (Div. 2) D. Deleting Divisors 博弈

传送门 文章目录题意:思路:题意: 给你一个数nnn,有两个人博弈,每次可以将nnn减去一个nnn的因子,这个因子不能为111或nnn。当不能操作的人输掉游戏。问你先手赢还是后手赢。 思路: 这个题多写…

【POI2007】OSI-Axes of Symmetry【计算几何】【manacher】

题意:给一个 nnn 个点的多边形,求对称轴个数。 n≤105n\leq 10^5n≤105 显然对称轴一定在顶点或边的中点上。 但你 n2n^2n2 枚举完全没有一点能过的样子。 冷静分析,发现有 “中点”,“对称轴”,很自然个鬼地想到了…

端到端测试实践:Jenkins集成TestCafe

上一篇《对产品质量的一点思考》中说到自动化测试的重要性,本文简单介绍下怎样在实际项目中实现端到端测试的自动化,在这里我们使用的端到端测试工具是TestCafe。环境Jenkisn:2.183TestCafe:1.3.0为什么采用TestCafe做自动化测试要…

Codeforces Round #727 (Div. 2) F. Strange Array 线段树 + 区间合并 + 排序优化

传送门 文章目录题意:思路:题意: 给你一个长度为nnn的数组,对每个位置iii求一个最大价值,价值计算方式如下:选择一个包含iii的[l,r][l,r][l,r],让后将其拿出来排序,之后价值就是当前…

【CF487E】Tourists【圆方树】【树链剖分】【multiset】

题意:给一张 nnn 点 mmm 边的连通无向图,点帯权,qqq 次操作: 修改一个点的权值。询问两点间所有简单路的最小权值的最小值。 n,m,q≤105n,m,q\leq 10^5n,m,q≤105 显然建出圆方树然后询问路径最小值。多半要树链剖分了。 对于方…

再见Jenkins,从Gitlab代码提交到k8s服务持续交付只需七毛三

Gitlab runner 快速搭建CICD pipeline背景日常开发中,相信大家已经做了很多的自动化运维环境,用的最多的想必就是利用Jenkins实现代码提交到自动化测试再到自动化打包,部署全流水线Jenkins在devops担任了很重要的角色,但是另一方面…

Codeforces Round #726 (Div. 2) F. Figure Fixing 二分图 + 思维

传送门 文章目录题意:思路题意: 给你一张nnn个点mmm条边的图,每个点都有一个当前值aia_iai​,目标值bib_ibi​,每次可以选择一条边(i,j)(i,j)(i,j),将ai,aja_i,a_jai​,aj​都加上任意一个数,问…

【NOI2020】命运【树形dp】【线段树合并】

题意:给一棵 nnn 个点的树,每条边需要染成黑白两种颜色中的一种。给出 mmm 个条件,每个条件给出 u,vu,vu,v,其中 uuu 是 vvv 的祖先,要求 uuu 到 vvv 的链上至少一条黑边。求方案数 模 998244353998244353998244353。 …

.NET Core 3.0之深入源码理解Kestrel的集成与应用(二)

前言前一篇文章主要介绍了.NET Core继承Kestrel的目的、运行方式以及相关的使用,接下来将进一步从源码角度探讨.NET Core 3.0中关于Kestrel的其他内容,该部分内容,我们无需掌握,依然可以用好Kestrel,本文只是将一些内部…

Codeforces Round #726 (Div. 2) E2. Erase and Extend (Hard Version) 贪心

传送门 文章目录题意:思路:题意: 给你一个长度为nnn的串sss,你有两个操作可以使用: (1)(1)(1)从sss的结尾删除一个字母。 (2)sss(2)sss(2)sss。 让你通过若干次操作使其变成一个长度为kkk的串,且其字典序最…