首页 > 其他分享 >Caterpillar on a Tree

Caterpillar on a Tree

时间:2024-07-08 18:30:00浏览次数:7  
标签:传送 Tree 然后 我们 叶子 Caterpillar 排序 节点

首先一个很显然的地方就是使用传送门肯定是在叶子节点使用,我们来考虑一下整个过程是怎么样的

为了方便,我们不妨假设可以传送回根节点\(k+1\)次,然后要求最后回到根节点

我们先从根节点走到某一个叶子结点,然后再从这个叶子节点走到另一个叶子节点,然后继续走到另一个叶子节点,一直这么下去,最后从某一个叶子结点传送回根节点,然后再重复类似的过程

于是可以知道,我们如果已经知道了叶子节点的访问顺序,我们只需要决定在哪两个叶子节点之间使用传送即可,而且不同相邻叶子节点之间决定是否使用传送是独立的

于是我们尝试写出如果使用传送,代价会减少多少

所以我们对于某一个确定的顺序,对于每个相邻的叶子节点之间,算出\(dst\)数组,然后将\(dst\)数组从大到小排序,选出前\(k+1\)大的即可

所以现在的问题变成,我们如何排序

观察减少的代价,我们很容易想到让\(dep[u]\)尽量大,\(dep[lca]\)尽量小,于是一个naive的排序方法就出来了:对某个节点,其儿子集合为\(S\),设\(v∈S\),\(maxdep[v]\)表示从\(v\)到其叶子节点的最长路,那么对这个节点,将其儿子以\(maxdep\)为关键字从大到小进行排序就可以了

这个的严格证明见官方题解

像这种排序的,“梅深不见冬”也是类似题目

标签:传送,Tree,然后,我们,叶子,Caterpillar,排序,节点
From: https://www.cnblogs.com/dingxingdi/p/18290517

相关文章

  • B-Tree的应用
    在数据库和文件系统中,B-树及其变种被广泛用于索引结构,以优化数据的存储和检索效率。当处理的数据项是很大的记录时,使用改进的B-树可以带来显著的优势。以下是这种改进B-树的关键特性和工作原理的详细解释:1.**只有叶子节点存放完整记录**在标准的B-树中,每个节点(包括非叶子节......
  • cv2中二值图轮廓与轮廓层级参数cv2.RETR_TREE
    1.二值图的轮廓在使用cv2.findContours时,黑白二值图(像素值只有0或255)的轮廓都是以白色像素作为前景,黑色像素作为背景。看下面两个图(左图与右图同样大小都是200x200,左图是四周为黑色,中间为白色,右图为四周为白色,中间为黑色)。               ......
  • el-tree懒加载获取所有已经选的节点
    用于el-tree懒加载一个图层目录,勾选父级目录,需要得到该父级目录下所有叶子节点数据<el-tree:data="directoryDataLayer"show-checkboxnode-key="id":load="directoryDataLoad"......
  • 一文理解 Treelite,Treelite 为决策树集成模型的部署和推理提供了高效、灵活的解决方案
    ......
  • World of Warcraft [CLASSIC] Talent Tree
    WorldofWarcraft[CLASSIC] TalentTree 天赋树模拟器01)初始化整个页面,选择游戏职业,初始化3个天赋树02)初始化天赋树结构,层次为N层03)每层有4个技能,设置可显示,设置隐藏04)每个技能可配置图表,技能名称,备注说明,每一级说明不同05)每层的技能可支持最大技能点......
  • 静态 top tree 入门
    理论我们需要一个数据结构维护树上的问题,仿照序列上的问题,我们需要一个方法快速的刻画出信息。比如说线段树就通过分治的方式来通过将一个区间划分成\(\logn\)个区间并刻画出这\(\logn\)个区间的信息。然后我们考虑把这个东西放到树上类比。你发现线段树上每个非叶节点都......
  • CF915F Imbalance Value of a Tree
    达到今日更新量题目让我们求所有简单路径上最大值减去最小值的总和实际上就是所有简单路径的最大值总和减去所有简单路径上最小值总和然后分别求所以简单路径的极值,下面以最大值为例:我刚开始想到了非常SB的做法:枚举最大值x,设比x大的数为y,实际上有很多y,如果y是x的祖先,那么点对......
  • CF1039D You Are Given a Tree (树形 dp + 贪心 + 根号分治)
    CF1039DYouAreGivenaTree树形dp+贪心+根号分治题目是一个经典问题,可以用树形dp和贪心解决。设\(f_u\)表示以\(u\)节点为端点能够剩下的最长路径。考虑从叶子节点往上合并贪心,那么如果能够合并出包含\(u\)节点的大于等于\(k\)的路径,那么就合并,\(f_u=0\);否......
  • 在Java中,Map 接口的实现(如 HashMap,LinkedHashMap,TreeMap 等)并不保证遍历 keySet() 或
    在Java中,Map接口的实现(如HashMap,LinkedHashMap,TreeMap等)并不保证遍历keySet()或entrySet()时的顺序。但是,某些特定的Map实现确实提供了特定的遍历顺序。1、HashMap:它基于哈希表实现,并不保证映射的顺序,特别是遍历顺序。因此,当你使用map.keySet()遍历HashMap时,结果可......
  • vue elementUI el-tree 下拉树功能(包括搜索/默认高亮/展开下拉框默认定位于选中项的位
    <template><div><el-form:model="formData"ref="refFormData"label-width="180px"><el-form-itemlabel="景点"prop="location_id"><el-selectv-model="formData.location_name&qu......