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

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

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

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

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

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

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

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

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

HDOJ3594-Cactus(仙人掌图)

Cactus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
  • zzcblogs
  • zzcblogs
  • 2017年08月01日 08:59
  • 113

HDU - 3594 Cactus(仙人掌图)

题目大意:给出仙人掌图的定义: 1.必须是强连通 2.每条边只能属于一个环解题思路:在tarjan算法中加入点东西就可以判断了 只要该点能连到之前的点,那么形成环了,找到这个环的所有的边,并标记...
  • L123012013048
  • L123012013048
  • 2015年08月12日 00:50
  • 821

【BZOJ 1023】 [SHOI2008]cactus仙人掌图

tarjan求仙人掌直径~ 详细题解~~
  • Regina8023
  • Regina8023
  • 2015年01月25日 12:34
  • 1339

bzoj1023 仙人掌图【仙人掌&&树形dp】

解题思路:f[i]表示以i为根的子树中i为起点的最长链。若(u,v)是桥,则ans=max(ans,f[u]+f[v]+1)(此时f[u]还未被f[v]更新),接着f[u]=max(f[u],f[v]...
  • cdsszjj
  • cdsszjj
  • 2017年11月22日 16:52
  • 44

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

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

HDU 3594(Cactus)----判断强连通的图中每条边是不是只在一个环内

题目大意:给出一幅有向图,判断(1)此图是强连通图;(2)此图每条边仅被一个环所包含满足两个条件输出YES,否则输出NO  思路:(1):判断是否是强连通很简单,只要最后判断强连通分量是否为1即可;(...
  • allenjy123
  • allenjy123
  • 2011年07月23日 01:55
  • 1132

HDU 6041 I Curse Myself (仙人掌图)

Description There is a connected undirected graph with weights on its edges. It is guaranteed that...
  • qq_28954601
  • qq_28954601
  • 2017年07月31日 21:48
  • 189

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

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

hdu 3594 Cactus (仙人掌图判定/SCC)

判断一个有向图是不是仙人掌图。即强连通且每条边只属于一个环。 利用tarjan求强连通的同时找环。即访问某个顶点的时候,记录该顶点的上一个节点,当某个顶点被第二次访问时,说明有环存在。 每次找到...
  • u014679804
  • u014679804
  • 2015年08月14日 20:04
  • 716
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Cactus仙人掌图】仙人掌基础知识学习笔记
举报原因:
原因补充:

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