圆方树浅谈
圆方树浅谈 在联赛过后我又开始更博客啦。 一、前置知识点 首先在学习圆方树之前,要先有一些图论的基础,要先学会$tarjan$求点双。 二、仙人掌浅谈 首先先定义一下什么是仙人掌图。仙人掌图满足两个性质:性质一,仙人掌图是一个无向连通图。性质二,仙人掌图中的任意一条边最多存在于一个环中。借用$bzoj$的图来解释会清晰一点。 我们考虑仙人掌图具有什么性质,将仙人掌图的$dfs$树取出,我们可以得到一课挂满非树边的树,这些非树边一定不相交。对于这个性质,我们可以解决一类问题,例如仙人掌的最大独立集问题。例题: bzoj4316: 小c的独立集 我们考虑上述的性质,即仙人掌中任意两条非树边不相交。因为上述性质我们可以知道,在求最大独立集的时候,任意两个环可以做到互不影响。所以我们可以先考虑不在环上的点,在将一个环上所有的点所引出的子树都考虑结束的时候,考虑整个环。我们设状态$f[i][0/1]$,表示对于$i$号点的子树中,第$i$号点选择/不选择的最大独立集大小是多少。现在我们考虑转移,对于一条树边,我们直接按照求树的最大独立集那样转移就可以。若不是树边,我们先不转移。由于每一个点是在处理完所有的子树内的点之后再被处理,所以我们发现,若现在要处理的是一个环的顶点(对于一个环的顶点的定义为这个环中最先遍历到的点),这个环上其他的所有点除了由当前环转移的部分