cogs2840. 二叉查找树

二叉查找树

 

 

时间限制:1 s   内存限制:512 MB

【题目描述】

 

二叉查找树是一种特殊的二叉树(每个节点最多只有两个儿子的树)。树的每个节点上存有一个唯一的值,并且满足:这个节点的左子树内所有点的值都比这个节点的值小,且右子树内所有点的值都比这个节点的值要大。

对于一棵二叉查找树T,我们可以将一个值为 x的新点插入 T中,且保持树的性质。算法如下:

需要将 x 插入树 T时,执行 insert(x,T.root)。

 

现在有 N 个数需要插入一棵空树中。给定插入序列,请在每个元素被插入之后,输出所有节点的深度总和(根的深度为 0)。

【输入格式】

 

输入的第一行一个整数 n,表示序列长度。

 

接下来一行n个数是序列中的数字,这些数字是各不相同的,在[1, n]区间。

【输出格式】

 

 

输出 n 行,第 i 行整数表示第 i个数插入树后,至这个节点的节点深度总和。

 

 

【样例输入】

8
3 5 1 6 8 7 2 4

【样例输出】

0
1
2
4
7
11
13
15

【数据规模与约定】

 

对于 50%的数据,满足n ≤ 1000

对于100%的数据,满足n ≤ 3 ∗ 1e5

 

【来源】

qbxt 2017.10.7 t1

 

 

我们可以发现,这棵二叉搜索树构建完毕之后,根节点总是比他的子树内任意一个节点先插入 ,而直接构造是n^2级别的,我们需要知道有一种东西叫笛卡尔树,其实就是一颗treap,既满足二叉搜索树的性质,又满足堆的性质,对于任意一个节点有两个值,key和fix,key满足二叉搜索树,fix满足堆,如果key是按大小顺序插入的,那么我们可以在O(n)的时间内构造出这棵树,那么我们就按题目中所给数字大小顺序插入,fix值为其插入时间,就可以构造出符合题目的那棵树了。(key和fix给定时可以唯一确定一棵树)

 1 #include<cstdio>
 2 #define ll long long
 3 using namespace std;
 4 const int inf=3e5+10;
 5 int fix[inf],n,fa[inf],dep[inf],a[inf];
 6 ll ans;
 7 int main()
 8 {
 9     scanf("%d",&n);
10     for(int i=1;i<=n;i++){
11         scanf("%d",&a[i]);
12         fix[a[i]]=i;
13     }
14     for(int i=1;i<=n;i++){
15         int last=0,f=i-1;
16         while(fix[f]>fix[i])last=f,f=fa[f];
17         fa[i]=f;
18         fa[last]=i;
19     }
20     dep[0]=-1;
21     for(int i=1;i<=n;i++){
22         dep[a[i]]=dep[fa[a[i]]]+1;
23         ans+=dep[a[i]];
24         printf("%lld\n",ans);
25     }
26     return 0;
27 }
View Code

 

转载于:https://www.cnblogs.com/hyghb/p/8228287.html

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

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

相关文章

苹果挂端口方法_调音台变身直播声卡的方法

现在干直播的多了&#xff0c;搞音响的也可以利用自己手头的专业设备&#xff0c;把调音台变身为直播声卡&#xff0c;然后进行多通道的高品质混音直播。需要的条件&#xff1a;数字调音台或带有USB音频功能的模拟调音台苹果手机(本人没有安卓手机&#xff0c;就以苹果手机为例…

word删除所有的回车、空格

一、打开替换窗口 二、①删除回车 在查找内容中输入 ^p 在替换为中输入 ^s 或者空白 全部替换 ②删除空格 在查找内容中输入 ^w 在替换为中输入 空白 全部替换 三、总结 在Word中 ^p表示回车&#xff0c; ^s表示空白&#xff0c; ^w表示空格

xp的viostor驱动无法获取磁盘序列号的分析

深信服的viostor驱动在获取序列号的时候&#xff0c;多了一个IDE处理的代码&#xff0c;位置在1128处。它会在刚开机加载viostor.sys时机被调用&#xff0c;然后去读取注册表HKLM\\SYSTEM\CurrentControlSet\Services\viostor\Parameters的IDESNCompat&#xff0c;若为1则有此功…

十问亿级神经元类脑计算机:AI领域有望突破,哪些还需火候

来源&#xff1a;澎湃新闻近日&#xff0c;浙江大学联合之江实验室共同研制成功了中国首台基于自主知识产权类脑芯片的类脑计算机&#xff08;Darwin Mouse&#xff09;。研究团队在9月1日的成果发布会上指出&#xff0c;该类脑计算机在神经元规模上超越了德国海德堡大学的Brai…

网络加载空页面

空页面的显示很常用&#xff0c;所以自己做了一个通用的空页面显示&#xff0c;先看效果图 在有网络的时候正常加载显示&#xff0c;在没有网络的时候自动加载空页面&#xff0c;点击空页面重新加载网络请求的一个功能 1&#xff1a;定义一个xml页面&#xff0c;页面布局是一个…

excel有的单元文字可以超出单元格_excel单元格斜线

excel表格的强大功能&#xff0c;给办公带来了很多便捷&#xff0c;但是有很多强大的功能&#xff0c;其实我们都还不会用&#xff0c;如在做报表时&#xff0c;要用到给单元格加两条斜线&#xff0c;三条斜线时&#xff0c;有时就不知道怎么弄&#xff0c;两条或许会&#xff…

百度地图发布专网地图时空数据托管平台,构建智慧城市数字底盘

来源&#xff1a;百度地图“新基建”浪潮下&#xff0c;智慧城市的建设和发展进一步提速&#xff0c;作为智慧城市数字基础设施的地理信息系统&#xff0c;其数据体量也极大增长&#xff0c;对海量GIS数据集成、存储、管理、计算、表达、分析和应用等有关技术的创新发展提出了急…

word取消空格显示为点

其实就是编辑标记的隐藏与显示问题 看这里 这就是“显示/隐藏编辑标记”按钮&#xff0c;加深颜色时就会和我的文章一样有点点&#xff0c;再点击一下就好啦。

cad细等线体不显示_CAD图纸乱码、钢筋符号不显示解决办法(内含万能字体)

好课推荐&#xff1a;零基础CAD&#xff1a;点我CAD室内&#xff1a;点我 周站长CAD&#xff1a;点我CAD机械&#xff1a;点我 Bim教程&#xff1a;点我CAD建筑&#xff1a;点我CAD三维&#xff1a;点我全屋定制&#xff1a;点我 ps教程&#xff1a;点我苹果版CAD:点我 3dmax教…

长达1500年之久的争论:意识是连续的还是离散的?心理物理学家给出了新的回答...

来源&#xff1a;brainnews两种主要理论推动了由Saint Augustine发起的长达1500年之久的争论&#xff1a;意识是连续的&#xff08;即我们在每一个时间点都有意识&#xff09;&#xff0c;还是离散的&#xff08;即我们只在特定的时刻有意识&#xff09;&#xff1f; 9月3日发表…

kind富文本编辑器_在VueJs中集成UEditor 富文本编辑器

来源 | http://www.mshady.com/archives/378在vue的项目中遇到了需要使用富文本编辑器的需求&#xff0c;在github上看了很多vue封装的editor插件&#xff0c;很多对图片上传和视频上传的支持并不是很好&#xff0c;最终还是决定使用UEditor。这类的文章网上有很多&#xff0c;…

彭博社 : 中国稀土——美欧的苦恼

文章来源&#xff1a;彭博社作者&#xff1a;Joe Deaux图片、视频来源&#xff1a;网络编辑&#xff1a;江上波对于那些用于电动汽车、风力涡轮机等领域的稀有原材料&#xff0c;美国和欧洲提高产量、降低对中国依赖性的雄心壮志将面临很多障碍&#xff0c;包括更高的成本和环境…

反射应用二:利用反射加配置文件实现多数据库的访问

在上一篇文章中讲解了什么是反射&#xff0c;以及利用反射可以获取程序集里面的哪些内容。在平时的项目中&#xff0c;可能会遇到项目需要使用多种数据库&#xff0c;这篇文章中将会讲解如何利用反射实现访问多种数据库。 项目整体结构如下图所示&#xff1a; 1、Database.Inst…

2020未来科学大奖获奖名单揭晓

来源&#xff1a;高分子科技9月6日上午&#xff0c;2020 年未来科学大奖重磅揭晓&#xff0c;三大奖项获奖者分别为&#xff1a;未来科学大奖生命科学奖获奖者&#xff1a;张亭栋、王振义未来科学大奖物质科学奖获奖者&#xff1a;卢柯未来科学大奖数学与计算机科学奖获奖者&am…

与40mhz信道不兼容设置_物理信道发射功率

先上图与HSDPA有关的三个物理信道HS_SICH(TS2),HS_PDSCH(TS3,4,5),HS_SCCH(TS6).&#xff11;、 PCCPCH_power:PCCPCH承载BCH&#xff0c;为TS0时隙码道1和码道2的功率之和&#xff0c;以固定功率发射&#xff0c;一般设为30dBm。根据具体无线环境&#xff0c;可以优化设置…

带父节点的平衡二叉树_深入理解(二叉树、平衡二叉树、B-Tree、B+Tree )的区别

一、背景一般说MySQL的索引&#xff0c;都清楚其索引主要以B树为主&#xff0c;此外还有Hash、RTree、FullText。本文简要说明一下MySQL的BTree索引&#xff0c;以及和其相关的二叉树、平衡二叉树、B-Tree&#xff0c;相关的知识网上很多&#xff0c;为了方便自己更快、清楚的了…

2020年中国新基建人工智能产业链全景图深度分析汇总(附完整企业名单)

来源&#xff1a;北京物联网智能技术应用协会“新基建”是与传统基建相对应&#xff0c;结合新一轮科技革命和产业变革特征&#xff0c;面向国家战略需求&#xff0c;为经济社会的创新、协调、绿色、开放、共享发展提供底层支撑的具有乘数效应的战略性、网络型基础设施。其中“…

Word设置子标题跟随上级标题变化

1 先看看结果吧&#xff0c;结果可实现子标题跟随上级标题变动 2 设置各级标题 2.1 对于1级标题-“标题1”&#xff0c;修改标题样式样式基准&#xff1a;“正文”格式&#xff1a;段落&#xff1a;大纲级别&#xff1a;1级2.2 对于2级标题-“标题2”&#xff0c;修改标题样…

2压缩备份数据库_MySQL数据库备份

前端监控&#xff1a;www.webfunny.cn &#xff1b;只需要简单几步&#xff0c;就可以搭建一套属于自己的前端监控系统&#xff0c;快来试试吧。(github&#xff1a;webfunny_monitor)一、mysqldump 简介mysqldump 是 MySQL 自带的逻辑备份工具。它的备份原理是通过协议连接到 …

人工智能和物联网:智慧城市的交通管理

来源&#xff1a;帮尼资讯当今的智慧城市由不断重塑城市地区的先进技术提供发展驱动力。人工智能和物联网对于世界的运作越来越不可或缺。基于云的服务、物联网、分析平台和许多AI工具正在改变城市居民与环境互动和在环境中出行的方式。纽约市AI咨询和开发机构Blue Orange Digi…