仙人掌
文章平均质量分 61
calabash_boy
退役
展开
-
业界毒瘤仙人掌一条龙服务
本slide是为了NJU集训队准备。。。。未完待续。。。 正经定义 : 无向图中的每条边至多位于一个简单环上,且任意两点可达。由此可知仙人掌的构造方式很“优美”,即生成一棵树,把树的某些节点,都各自变成一个简单环,就变成了仙人掌。因此仙人掌大体围绕两个重点:树边、简单环。入门篇简单环判定 : codeforces 962F题意:给出无向图,找到所有...原创 2018-04-17 15:59:03 · 1163 阅读 · 0 评论 -
洛谷 P4129 [SHOI2006]仙人掌
题意:给出一个无向图,在判断原图是否为一个仙人掌图的基础上,求仙人掌的支撑子图个数 支撑子图:去掉一些边,但并不改变连通性,这样得到的子图为支撑子图。题解:1个仙人掌 <=> 连通性&点双均为简单环。 于是先dfs一次检验连通性,然后tarjan求点双,检验点双的点数=边数。 Ans=∏(环长+1)Ans=∏(环长+1)\begin{equatio...原创 2018-04-17 15:54:26 · 460 阅读 · 0 评论 -
BZOJ 1023 [SHOI2008]cactus仙人掌图:圆方树+单调队列DP
题目传送门题意:给出一个仙人掌图,边权都为1,求其直径。 仙人掌图:无向图的每条边至多存在于一个简单环中。 仙人掌图直径:Max(dis(u,v)) 1<= u < v <=n。dis(u,v)是u、v之间的最短路径。题解:先考虑退化情况:仙人掌退化为一棵树。很显然可以通过一个树形DP来解决,讨论路径的形态:1、分跨在一个点的两个子树中2、...原创 2018-04-18 17:32:27 · 623 阅读 · 0 评论 -
BZOJ 4316 小C的独立集:圆方树+DP
题意:给定一棵仙人掌图,求其最大独立集。 独立集:点集内任意两点不存在边直接相连。 点相互独立:这些点组成的点集为独立集题解:树上情况:dp[i][0/1]表示考虑i为根的子数,i不选/选最多能选几个点。设j为i的儿子,有转移方程: dp[i][0]=∑max(dp[j][0],dp[j][1])dp[i][0]=∑max(dp[j][0],dp[j][1])\begin...原创 2018-04-18 21:20:34 · 555 阅读 · 0 评论 -
BZOJ 2125 最短路:圆方树+LCA(倍增)
题意:给出一个仙人掌,多次询问两点间最短距离。题解:树的情况下,只需要LCA即可,树剖或者倍增都行,树剖常数比倍增小一些,而且确实好写。 仙人掌情况下,只需要建立圆方树,显然方点到圆点父亲的边权应为0。讨论两点LCA的性质: LCA为圆点:这种情况说明此圆点确为两点LCA,答案就是dis(u)+dis(v)-2*dis(lca) LCA为方点:这种情况下说明,u和v两点向上寻找LCA...原创 2018-04-19 21:49:32 · 384 阅读 · 0 评论 -
codeforces 487E Tourists : 圆方树+链剖+线段树+可删除堆
题意:给出一个无向联通图,每个点有一个权值,要求兹磁一种修改操作:修改某点权值;以及一种查询操作:查询某两点x,y的所有简单路径上的最小点权。题解:这东西是必然要缩点的啦,那么问题来了,缩点有三种写法:强连通,点双,边双。显然要点双啦,题目都说了要简单路径的。那么点双一缩,变成一棵树,然后考虑树上两点,他们的简单路径并={树上路径+路径上的点双里面的所有的点}。我们仿照圆方树操作:将每...原创 2018-05-14 20:56:16 · 734 阅读 · 0 评论