【Cactus仙人掌图】仙人掌基础知识学习笔记

原创 2015年08月27日 08:43:43

首先膜一下vfk领先全球的动态仙人掌栽培技术…
然后谢谢Time-Machine学长在暑假集训时候讲了仙人掌DP.
然后感觉听得并不是很懂…所以再来对着论文学一遍顺便写一写例题代码
这一篇主要先学仙人掌的基础(定义和性质什么的)

————————————线 割 分 是 我 >w<———————————————–
什么是仙人掌?
仙人掌是不含自环的,一条边最多属于一个简单环的无向连通图.
从定义不难看出树其实也是仙人掌的一种,也就是说这几个概念的关系大概是:
树是一种特殊的仙人掌,仙人掌是一类特殊的无向连通图.
从图片来观察一下.
这里写图片描述
这也是个仙人掌↓
这里写图片描述
那么我们现在就知道怎样来区分仙人掌和非仙人掌了

对于树我们都很熟悉,那么能不能想办法把仙人掌看成一棵树呢?
办法是有的.仙人掌上最讨厌的就是环.但是我们注意到仙人掌上不可能存在环与其他环有重边,这就好办了,我们可以把环看成类似树上的节点的东西,只是这个节点包含了更大的信息量.(注意只是类似,和真正树上的节点是不一样的!)

仿照树相关的定义,我们可以对仙人掌定义仙人掌上的节点的父亲和环的父亲.
对于仙人掌上的节点,它的父亲是可能存在多种可能的.如果它到根的路径上与它相邻的是一条简单路径而不是环,那么这个节点的父亲和平常树上节点的父亲是没什么区别的, 它的父亲是它到根的简单路径上经历的第二个点.那么如果它到根节点路径上与它相邻的是个环,则将其到根的路径上经历的第一条边所在的环当做其父亲.
对于环,我们将它的父亲定义为一个环上离根最近的点.
相对的那么就出现了儿子关系了.
对于仙人掌上的节点,它的儿子显然可以是环可以是普通节点.
但是对于环的儿子,则是环上除掉这个环的父亲以外的其他所有节点.

区别于普通树,对仙人掌而言环上的节点除了父亲之外还存在父亲节点母亲节点(为什么要起这种名字好容易搞混啊…)
环上节点的父亲节点和母亲节点指这个点在环上相邻的那两个点.
(一定不要搞混啦>_<)

怎样进行仙人掌的遍历和节点信息的确定呢?
依然是从根节点开始DFS.
如果我们将要访问一个节点,而这个节点之前还没有被访问过,那么我们直接把这个节点的父亲设为当前节点就行了.(从环和节点的父亲的定义上看这样显然没问题)
那么如果我们将要访问的那个节点已经被访问过了呢?显然这时候出现了环.
那么就有两种情况:
现在我们假设我们正在访问的节点为x,将要访问的那个节点为y
那么如果x的第一次被访问时间比y早,那么这证明y所在的环已经被我们访问过了,就不需要再单独对y处理什么.
如果x的第一次被访问时间比y晚,则说明x在一个以y为父亲的环上,此时再遍历整个环标记一下父亲节点母亲节点.
至此,整个仙人掌遍历完成,同时仙人掌上所有节点的父子父母信息都已经处理了出来.

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CreationAugust/article/details/48007069

MFC浅析(7) CWnd类虚函数的调用时机、缺省实现

CWnd类虚函数的调用时机、缺省实现
  • FMD
  • FMD
  • 2001-06-16 13:12:00
  • 3084

仙人掌相关问题的处理方法(未完待续)

仙人掌相关问题的处理方法如图所示:仙人掌图就是长得像仙人掌的图嘛(我真没看出哪里像了)定义:对一个无向连通图,任意一条边属于至多一个简单环。 桥边:非环边,就是连接环的那些边; 环边:就是环中的边嘛。...
  • zhangche0526
  • zhangche0526
  • 2017-05-13 21:36:19
  • 1380

【Cactus仙人掌图】仙人掌DP学习笔记

我们从例题入手来考虑仙人掌上DP的一般规律叭.Ex 1.仙人掌上的单源最短路问题 联想树上最短路,由于路径的唯一性可以直接做一遍O(n)的搜索.但是仙人掌上显然不具备路径的唯一性这种性质. 那么我...
  • CreationAugust
  • CreationAugust
  • 2015-08-27 10:30:05
  • 2424

BZOJ 3899 仙人掌树的同构 仙人掌同构+KMP算法

题目大意:给定一棵仙人掌,求有多少自同构仙人掌同构问题= = 曾经出过一个判断两个仙人掌是否同构的题,感觉和这个题很类似首先假设这是一棵树,考虑怎么做我们首先找到树的重心(如果有两个就在中间加一个点...
  • PoPoQQQ
  • PoPoQQQ
  • 2015-07-10 14:01:14
  • 1725

ZJOI2017 仙人掌 转化模型后的简单树形dp

题目大意给定一个nn个点,mm条变的无向无自环的连通图,问都多少种加边方案使得加完边的图是一幅没有重边仙人掌。(即满足任意一条边只属于一个简单环中的无向无自环图的连通图) 多组数据。∑n≤5∗105...
  • YxuanwKeith
  • YxuanwKeith
  • 2017-03-26 10:14:23
  • 727

BZOJ 1023 SHOI2008 cactus仙人掌图 仙人掌DP

题目大意:给定一棵仙人掌,求这棵仙人掌的直径 首先Tarjan缩点双,开vector或者链表记录每个点属于哪些点双,以及每个点双中有哪些点 有些点双可能不是环,我们可以补上一条边看成环,无伤大雅 ...
  • PoPoQQQ
  • PoPoQQQ
  • 2015-01-10 16:11:49
  • 1341

HDOJ3594-仙人掌图的判断

/* 题意:给出一个有向图,判断该图是否为仙人掌图. 这里有一个不错的关于仙人掌图性质分析文章: pdf:http://files.cnblogs.com/ambition/cactus_so...
  • yihuikang
  • yihuikang
  • 2012-08-24 15:51:16
  • 2414

bzoj1023: [SHOI2008]cactus仙人掌图

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1023 思路:类似树形DP记录一个f[i]表示最远(因为有环,所以这个定义是有一些限制条件的...
  • thy_asdf
  • thy_asdf
  • 2016-01-14 09:49:42
  • 568

各种聚类算法的比较

聚类的目标是使同一类对象的相似度尽可能地小;不同类对象之间的相似度尽可能地大。目前聚类的方法很多,根据基本思想的不同,大致可以将聚类算法分为五大类:层次聚类算法、分割聚类算法、基于约束的聚类算法、机器...
  • qeeainburg
  • qeeainburg
  • 2014-03-03 17:48:01
  • 1705

[仙人掌直径 单调队列 DP] BZOJ 1023 [SHOI2008]cactus仙人掌图

题解: http://z55250825.blog.163.com/blog/static/150230809201412793151890/ http://hzwer.com/4645.html ...
  • u014609452
  • u014609452
  • 2016-07-02 00:07:22
  • 470
收藏助手
不良信息举报
您举报文章:【Cactus仙人掌图】仙人掌基础知识学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)