首页 > 其他分享 >[abc321E]Complete Binary Tree

[abc321E]Complete Binary Tree

时间:2023-09-24 17:47:04浏览次数:57  
标签:一层 Binary 结点 题目 Complete Tree abc321E 节点

2023-09-23

题目

题目传送门

翻译

翻译

难度&重要性(1~10):6

题目来源

AtCoder

题目算法

模拟

解题思路

考场没调出来,考完赶紧写发题解祭奠一下。

这道题主要就是模拟,细节比较多。

思路就是一层一层的计算贡献:

如图,我们首先计算出以结点 \(x\) 为根的子树第 \(k\) 层的结点数,再计算结点 \(x\) 的父节点的另一个子节点的 \(k-1\) 层的结点数,以此类推,直到 \(k=1\)。

思路就是这样,但是有很多的小细节,例如:

  • 在计算子树第 \(i\) 层的结点数时要判断是否存在这一层以及这一层是否是满的

  • 当 \(k=1\) 时,需要判断当前是否时根节点,即当前 \(x\) 是否为 \(1\),如果是则无贡献

完成状态

已完成

标签:一层,Binary,结点,题目,Complete,Tree,abc321E,节点
From: https://www.cnblogs.com/OIerBoy/p/17725486.html

相关文章

  • 2023湖南省赛 E.ytree (线段树)
    传送门大致思路:1.将操作1拆分为两个部分x(-1)^d+kd(-1)^d。对于操作1中的x(-1)^d部分而言。我们可以对式子进行拆分,把x拆出来,我们会发现和v号点距离为奇数的点会减去x,为偶数的点会加上x,所以我们可以在线段树上用一个sum1维护应该减去的值,sum2维护加上的值即可。2.随即就是......
  • E - Complete Binary Tree
    E-CompleteBinaryTree完全二叉树三个值N,X,K,分别表示点的个数,点的编号,求到X点的距离为K点的个数。首先,我们对以X为根的子树进行分析,可以知道到X点距离为K的点的个数为2^k。这里需要特判,深度为K时最左边的编号不能大于N,点的个数就等于min(r,n)-l+1。然后再对它的父亲进行......
  • pyqt5-QTreeWidgetItem
    QTreeWidgetItem树节点项。QTreeWidgetItem(strings:Iterable[str],type:int=QTreeWidgetItem.Type)创建节点时,必须是Iterable[str],表示一行中各列的文本 1、子节点child(self,index:int)->QTreeWidgetItem获取某节点的某子节点childCount(self)->int获......
  • pyqt5-QTreeWidget
    QTreeWidget树组件。1、顶级项addTopLevelItem(self,item:QTreeWidgetItem)末尾添加单个顶级项addTopLevelItems(self,items:Iterable[QTreeWidgetItem])末尾批量添加顶级项insertTopLevelItem(self,index:int,item:QTreeWidgetItem)指定索引插入单个顶级项......
  • Codeforces 1868D. Flower-like Pseudotree
    题目链接:D-Flower-likePseudotree题目大意:给定度数数组\({d_n}\),要求构造一个\(n\)个点\(n\)条边的连通图(也就是基环树),允许有重边,但不能有自环。需要满足第\(i\)个点的度数恰好为\(d_i\),并且将环上的边全部删去后,剩下的每棵树的高度(以原先在环上的点为根)相同。首先考......
  • Vscode Todo Tree
    管理注释,便于查找开发过的代码,提高工作效率。 使用: ......
  • 算法题——定义一个方法自己实现 toBinaryString 方法的效果,将一个十进制整数转成字符
    用除基取余法,不断地除以基数(几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来即可。privatestaticStringtoBinaryString(intnumber){StringBuildersb=newStringBuilder();while(true){if(number==0)break;intyushu=num......
  • 【Java 基础篇】Java TreeSet 详解:红黑树实现的有序集合
    Java集合框架提供了多种数据结构,用于存储和操作数据。其中,TreeSet是一种特殊类型的集合,它通过红黑树(Red-BlackTree)数据结构实现了有序的、唯一元素存储。本篇博客将深入探讨TreeSet,包括其概念、特性、内部实现、使用方法以及示例代码。无论您是初学者还是有一定经验的Java开......
  • CF1842F Tenzing and Tree 题解
    TenzingandTree感觉很典型的题,就是树的重心+绝对值等式解法:以每个点\(i\)为根分别\(bfs\),得到一个距离数组\(dis\),取前\(k\)个值的权值为和,更新\(w[k]\)的值,\(n\)个点分别为根,更新\(n\)遍之后,得到\(w\)数组,则\((n-1)\timesi-w[i]\),即为\(i\)个点时候的......
  • Arrays.binarySearch 详解
    Arrays.binarySearch详解前提:非降序排序数组binarySearch(Object[]a,Objectkey)a:待搜索的数组key:要搜索的值逻辑条件可以找到:返回一个>=0的索引找不到:【从1开始计数】在数组范围内,返回-(key将要插入的位置)不在范围内:返回-1或者-(len+1)......