首页 > 其他分享 >prufer序列

prufer序列

时间:2024-10-03 15:34:14浏览次数:8  
标签:度数 删除 编号 序列 prufer 节点

ps.之前刷题太快,现在考试碰到这种已经忘记了。

定义:一种将带编号的树用唯一的一个整数序列表示的方法,即可以把一颗带标号的 n 个节点的树序列化为一个长度为 n−2 的唯一的序列。

也就相当于完全图的生成树与数列之间的双射。

构造方法:每次选择一个编号最小的叶节点并删掉它,并把其父亲节点加入序列。

重复 n−2 次如上操作,此时树上只剩 2 个节点,算法结束。

首先找到编号最小的,度数为 1 的叶子节点,指针 p 指向它,将它删除。

如果删除了这个节点后,它的父亲节点的编号比它小并且父亲节点的度数也变成了1,那么此时这个节点一定是编号最小的叶子节点,删除它即可,同时不断往上删除,注意在这个过程中 p 并不进行移动。

否则,继续找到下一个编号最小的叶子节点即可。

每条边在删度数的时候最多被访问一次,而指针最多遍历每个结点一次,因此复杂度是 O(n) 的。

性质:1.构造完prufer序列后剩下两个节点其中一个是点n

2.每个节点出现次数是度数-1

3.没有出现在prufer里的节点就是叶子节点

Cayley公式:有n个节点的完全图有 \(n^{n-2}\) 棵生成树。

因为任意一个长度为n-2的值域[1,n]的整数序列都可以通过prufer序列双射对应一个生成树。

标签:度数,删除,编号,序列,prufer,节点
From: https://www.cnblogs.com/YYYmoon/p/18445717

相关文章

  • 全网最适合入门的面向对象编程教程:55 Python字符串与序列化-字节序列类型和可变字节字
    全网最适合入门的面向对象编程教程:55Python字符串与序列化-字节序列类型和可变字节字符串摘要:在Python中,字符编码是将字符映射为字节的过程,而字节序列(bytes)则是存储这些字节的实际数据结构,字节序列和可变字节字符串的主要区别在于其可变性和用途,bytearray是可变的字节序列......
  • VisionTS:基于时间序列的图形构建高性能时间序列预测模型,利用图像信息进行时间序列预测
    构建预训练时间序列模型时面临的主要挑战是什么?获取高质量、多样化的时间序列数据。目前构建基础预测模型主要有两种方法:迁移学习LLM:通过针对时间序列任务定制的微调或分词策略,重新利用预训练的大型语言模型(LLM),如GPT-4或Llama。从零训练:构建大规模时间序列数据集,并从头开始预训......
  • 代码随想录算法训练营 | 贪心算法:455.分发饼干,376. 摆动序列,53. 最大子序和
    455.分发饼干题目链接:455.分发饼干文档讲解︰代码随想录(programmercarl.com)视频讲解︰分发饼干日期:2024-10-02想法:大饼干喂大孩子Java代码如下:classSolution{publicintfindContentChildren(int[]g,int[]s){Arrays.sort(g);Arrays.sort(s);......
  • 代码随想录算法训练营 | 491.递增子序列,46.全排列,47.全排列 II
    491.递增子序列题目链接:491.递增子序列文档讲解︰代码随想录(programmercarl.com)视频讲解︰491.递增子序列日期:2024-10-02想法:根据题目nums[i]的范围在-100到100,可以用数组做记录是否同一层使用过Java代码如下:classSolution{List<Integer>path=newArrayList<>();......
  • 【Ubuntu】PlantUML工具 | 安装 | 语法 | 使用工具画序列图
    ......
  • 最长上升子序列LIS 详解+变形+拓展
    最长上升子序列(LIS):定义:最长上升子序列(LIS)是一个序列中,找到一个子序列,使得这个子序列的元素是严格递增的,且该子序列的长度最大*子串和子序列的差别:子串: 元素的连续性,必须是相邻的子序列:元素的相对顺序,可以不连续 从实例中来[1,7,5,6,9,2,4]这个数组根据肉眼......
  • Java中序列化与反序列化的学习
    对象序列化和反序列化目录对象序列化和反序列化序列化反序列化注意事项Java对象序列化(Serialization)和反序列化(Deserialization)是Java提供的一种机制,允许你将一个对象的状态保存到一个字节序列中,并能从这个字节序列中恢复出原始对象。这种机制主要用于对象的持久化存储(如保存到......
  • 高清视频格式转换软件 WonderFox HD Video Converter 序列号
    WonderFoxHDVideoConverterFactoryPro是一款多语言、一体化的软件应用程序,专注于音频视频转换、编码、下载、编辑和录制。在WonderFox独家视频编码技术的支持下,HDVideoConverterFactoryPro可实现更高质量的输出,使其在众多高清视频转换器中脱颖而出。该版本已内置序......
  • 区间预测 | Matlab实现ARIMA-KDE的时间序列结合核密度估计区间预测
    目录效果一览基本介绍程序设计参考资料效果一览基本介绍1.Matlab实现ARIMA-KDE的时间序列结合核密度估计区间预测,ARIMA的核密度估计下置信区间预测。2.含点预测图、置信区间预测图、核密度估计图,区间预测(区间覆盖率PICP、区间平均宽度百分比PINAW),点预测多......
  • [leetcode]516_最长回文子序列
    给你一个字符串s,找出其中最长的回文子序列,并返回该序列的长度。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。示例1:输入:s="bbbab"输出:4解释:一个可能的最长回文子序列为"bbbb"。示例2:输入:s="cbbd"输出:2解释:一个......