随笔分类 -  图论--圆方树&仙人掌

摘要:"vjudge" 首先显然要建立圆方树 对于每一种点建立虚树,考虑这一种点贡献,对于虚树上已经有的点就直接算 否则对虚树上的一条边 $(u, v)$,$u$ 为父亲,假设上面连通块大小为 $x$,下面为 $y$ 切断 $(u, v)$ 之间的点(不包括 $u$)都会有 $x\times y$ 的贡献 阅读全文
posted @ 2019-01-16 14:51 Cyhlnj 阅读(239) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 首先判断是能成为仙人掌 然后考虑$DP$ 因为所有的环内不可能连边,那么直接删掉 变成一个森林 对每个树求出方案然后相乘就是答案 一个巧妙的转化:看成选取若干条路径恰好覆盖所有的树边的方案数 设$g[i]$表示$i$个点两两配对的方案数 $g[i]=g[i 1]+g[i 2 阅读全文
posted @ 2018-05-31 12:23 Cyhlnj 阅读(197) 评论(0) 推荐(0)
摘要:题面 $LOJ$自己找。。 Sol 建立圆方树 考虑枚举起点$s$和终点$t$ 那么答案就是$s$到$t$间的点双的点数和减去$s,t$ 设方点权值为点双的点数,圆点的权值为$ 1$ 那么就是求$s,t$的路径上的点权和 现在考虑中间的点$x$ 那么它的贡献就是经过它的路径的条数 它的权值 树$DP 阅读全文
posted @ 2018-05-31 12:13 Cyhlnj 阅读(245) 评论(0) 推荐(0)
摘要:定义 大概就是:连通图,每条边最多只属于一个环 用处 解~~别人出的毒瘤~~题 ~~出毒瘤题~~ 反正要学。。。 习题 仙人掌的最大独立集 "Bzoj4316: 小C的独立集" 做法 没有环就是树$DP$ 碰到环就做一遍环上的$DP$就好了,枚举一下一个点是否选即可 cpp include defi 阅读全文
posted @ 2018-05-31 12:07 Cyhlnj 阅读(241) 评论(0) 推荐(0)
摘要:我写这篇博客的原因 证明我也是学过圆方树的 顺便存存代码 前置技能 双联通分量:点双 然后就没辣 圆方树 建立 新建一个图 定义原图中的所有点为圆点 对于每个点双联通分量(只有两个点的也算) 建立一个方点,向所有的点双内的点连边 性质 1. 一定是个森林 2. 每个点双有唯一的方点 3. 圆点方点相 阅读全文
posted @ 2018-02-25 10:48 Cyhlnj 阅读(601) 评论(2) 推荐(1)