【Cactus仙人掌图】仙人掌基础知识学习笔记
首先膜一下vfk领先全球的动态仙人掌栽培技术…
然后谢谢Time-Machine学长在暑假集训时候讲了仙人掌DP.
然后感觉听得并不是很懂…所以再来对着论文学一遍顺便写一写例题代码
这一篇主要先学仙人掌的基础(定义和性质什么的)
————————————线 割 分 是 我 >w<———————————————–
什么是仙人掌?
仙人掌是不含自环的,一条边最多属于一个简单环的无向连通图.
从定义不难看出树其实也是仙人掌的一种,也就是说这几个概念的关系大概是:
树是一种特殊的仙人掌,仙人掌是一类特殊的无向连通图.
从图片来观察一下.
这也是个仙人掌↓
那么我们现在就知道怎样来区分仙人掌和非仙人掌了
对于树我们都很熟悉,那么能不能想办法把仙人掌看成一棵树呢?
办法是有的.仙人掌上最讨厌的就是环.但是我们注意到仙人掌上不可能存在环与其他环有重边,这就好办了,我们可以把环看成类似树上的节点的东西,只是这个节点包含了更大的信息量.(注意只是类似,和真正树上的节点是不一样的!)
仿照树相关的定义,我们可以对仙人掌定义仙人掌上的节点的父亲和环的父亲.
对于仙人掌上的节点,它的父亲是可能存在多种可能的.如果它到根的路径上与它相邻的是一条简单路径而不是环,那么这个节点的父亲和平常树上节点的父亲是没什么区别的, 它的父亲是它到根的简单路径上经历的第二个点.那么如果它到根节点路径上与它相邻的是个环,则将其到根的路径上经历的第一条边所在的环当做其父亲.
对于环,我们将它的父亲定义为一个环上离根最近的点.
相对的那么就出现了儿子关系了.
对于仙人掌上的节点,它的儿子显然可以是环可以是普通节点.
但是对于环的儿子,则是环上除掉这个环的父亲以外的其他所有节点.
区别于普通树,对仙人掌而言环上的节点除了父亲之外还存在父亲节点和母亲节点(为什么要起这种名字好容易搞混啊…)
环上节点的父亲节点和母亲节点指这个点在环上相邻的那两个点.
(一定不要搞混啦>_<)
怎样进行仙人掌的遍历和节点信息的确定呢?
依然是从根节点开始DFS.
如果我们将要访问一个节点,而这个节点之前还没有被访问过,那么我们直接把这个节点的父亲设为当前节点就行了.(从环和节点的父亲的定义上看这样显然没问题)
那么如果我们将要访问的那个节点已经被访问过了呢?显然这时候出现了环.
那么就有两种情况:
现在我们假设我们正在访问的节点为x,将要访问的那个节点为y
那么如果x的第一次被访问时间比y早,那么这证明y所在的环已经被我们访问过了,就不需要再单独对y处理什么.
如果x的第一次被访问时间比y晚,则说明x在一个以y为父亲的环上,此时再遍历整个环标记一下父亲节点母亲节点.
至此,整个仙人掌遍历完成,同时仙人掌上所有节点的父子父母信息都已经处理了出来.
【Cactus仙人掌图】仙人掌基础知识学习笔记相关推荐
- Python基础知识学习笔记——Matplotlib绘图
Python基础知识学习笔记--Matplotlib绘图 整理python笔记,以防忘记 文章目录 Python基础知识学习笔记--Matplotlib绘图 一.绘图和可视化 1.导入模块 2.一个简 ...
- opencv-python基础知识学习笔记
opencv-python基础知识学习笔记 原博地址:https://www.cnblogs.com/silence-cho/p/10926248.html 目录: opencv-python基础知识 ...
- 图像基础知识学习笔记
图像基础知识学习笔记 文章目录 图像基础知识学习笔记 前言 一.图像基础知识相关笔记 1.光学系统影响图像的结构主要包括什么? 2.常见噪声都有什么,其分类,及特点? 3.光圈,快门,景深? 4. I ...
- Python 基础知识学习笔记——NumPy
Python基础知识学习笔记--NumPy 与 matlab 优秀的矩阵运算类似,python 提供了 numpy 库,这对熟悉 matlab 的用户来说非常友好.向量.矩阵和多维数组是数值计算中必不 ...
- Python 基础知识学习笔记——OpenCV(1)
Python 基础知识学习笔记--OpenCV(1) OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,它轻量而且高效,被广泛的使用. 整理一下OpenCV学习笔记,以防忘记. 文章目录 Py ...
- python基础知识学习笔记(2)
python基础知识学习笔记(2) 整理一下python基础知识,以防忘记 文章目录 python基础知识学习笔记(2) python简洁的一行代码 python简洁的一行代码 1.交换两个变量 # ...
- python基础知识学习笔记(1)
python 基础知识学习笔记(1) 总结一下Python基础知识,以防忘记. 文章目录 python 基础知识学习笔记(1) 一.起步 1.python安装与编译环境 二.变量和简单数据类型 三.列 ...
- oracle数据库基础知识总结,oracle数据库基础知识学习笔记
oracle数据库基础知识学习笔记 一.oracle数据库类型: Char: 字符型(最大长度2000,定长.不足时以空格补充) Varchar2:字符型 最大长度 4000,变长,实际长度由存储的 ...
- Python基础知识学习笔记(一)
Python基础知识学习笔记(一) 文章目录 Python基础知识学习笔记(一) (一) 认识python 1.注释 2.变量及类型 3.关键字(标识符) (1)什么是关键字? (2)查看关键字 (3 ...
- K8s基础知识学习笔记及部分源码剖析
K8s基础知识学习笔记及部分源码剖析 在学习b站黑马k8s视频资料的基础上,查阅了配套基础知识笔记和源码剖析,仅作个人学习和回顾使用. 参考资料: 概念 | Kubernetes 四层.七层负载均衡的 ...
最新文章
- 基本算法系列15天速成
- wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString....转换
- Linux minicom 软件退出方法
- linux文件系统启动流程 ---笔记整理
- 在俱乐部首页看不到的团队成员(更新中...)
- 解决DataGridView绑定List后不能排序的问题
- react 生命挂钩_角生命周期挂钩:ngOnChanges,ngOnInit等
- 决定要放下的人,要不要好好道个别?
- netstat命令---Linux查看网络和socket信息
- 静态路由实现路由过滤
- ITK简介与ITK Pipeline
- 2020 快手 被吊打面经
- Junit实现抽象类测试(一)
- 计算机中职作文,中职作文题目
- python能调用身份证读卡器吗_华视身份证读卡机Python二次开发
- vim 常用功能大全
- wireshark抓包
- 什么是Ninja -
- arduino液晶显示屏与温湿度传感器连接
- Anaconda 大疆 Tello EDU python 环境配置
热门文章
- 华为手机主界面的返回键怎么调出来_华为手机怎么调出来下面返回键
- ES已经安装了ik分词器,仍然报错analyzer [ik_max_word] not found for field
- win7下笔记本电脑给手机开热点
- 如何在小方框上打对号 小方框内打对勾 word 方框打对勾
- Qt编写的qml程序全屏时,挡住系统虚拟键盘的解决办法
- Apache Flink如何处理背压
- uniapp 微信小程序 map获取接口数据后地图标注marker不会渲染显示
- rdt 可靠数据传输协议
- Lab、RGB、CMY、HSV、HSL
- 史上首次!个人所得税退税来了!如何退?怎么操作?