LINK: "最短路" 一张仙人掌图 求图中两点最短路。 $n=1$ 考虑边数是多少 m =n 1 对于一张仙人掌图 考虑先构建出来dfs树 非树边会形成环 环不可能相交 也没有自环 那么说一每形成一个环需要一条树边和非树边。 所以m include include include include ...
分类:
其他好文 时间:
2020-04-02 22:31:11
阅读次数:
84
Description 如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人掌 图(cactus)。所谓简单回路就是指在图上不重复经过任何一个顶点的回路。 举例来说,上面的第一个例子是一张仙人图,而第二个不是——注意到它有三条简单回路:(4,3, ...
分类:
其他好文 时间:
2019-08-17 10:52:26
阅读次数:
84
圆方树:一种将由图转化而成的树,从而大大了增加题目的可解性,且大多广泛用于仙人掌图中。 ...
分类:
其他好文 时间:
2019-08-03 10:47:59
阅读次数:
85
1023: [SHOI2008]cactus仙人掌图 链接 "bzoj" 思路 仙人掌求两点间最短路最大。姑且叫他仙人掌的直径。 f[u]表示u为端点的最长的最短路 当他是圆圆边,和树上一样dp转移。 圆方边,取出环了进行别的dp。 转化成带权的环上更新两端距离的最短路的最大值,单调队列。 最后别忘 ...
分类:
其他好文 时间:
2019-05-31 21:16:20
阅读次数:
109
图(cactus)。所谓简单回路就是指在图上不重复经过任何一个顶点的回路。 输入的第一行包括两个整数n和m(1≤n≤50000以及0≤m≤10000)。其中n代表顶点个数,我们约定图中的顶点将从1到n编号。接下来一共有m行。代表m条路径。每行的开始有一个整数k(2≤k≤1000),代表在这条路径上的 ...
分类:
其他好文 时间:
2019-05-09 21:48:30
阅读次数:
585
Description 如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人掌图(cactus)。所谓简单回路就是指在图上不重复经过任何一个顶点的回路。 举例来说,上面的第一个例子是一张仙人图,而第二个不是——注意到它有三条简单回路:(4,3,2 ...
分类:
其他好文 时间:
2019-01-17 21:14:17
阅读次数:
190
"P4244 [SHOI2008]仙人掌图 II" 仙人掌求直径,和树一样最大+次大 处理环时,算一下环内两点距离+子树最大和,根节点此时的其他子树已确定的最大子树 用 环内一点距离+点最大子树更新 cpp include include include include using namespac ...
分类:
其他好文 时间:
2018-12-31 00:01:30
阅读次数:
175
菜鸡 wxw 的计划(~~肯定会咕咕咕~~ 12.27 1. luogu P4244 [SHOI2008]仙人掌图 II 2. luogu P4246 [SHOI2008]堵塞的交通 3. luogu P1848 [USACO12OPEN]书架Bookshelf ...
分类:
其他好文 时间:
2018-12-27 00:28:52
阅读次数:
132
"传送门" 仙人掌直径,以前好像模拟赛的时候做到过一道基环树的直径,打了个很麻烦的然而还错了……今天才发现那就是这个的弱化版啊…… 如果是树的话用普通的dp即可,记$f[u]$表示$u$往下最长能伸多少。我们用一个类似tarjan的做法,在dfs的过程中记录dfn和low,如果某条边不在环内,那么这 ...
分类:
其他好文 时间:
2018-11-29 15:28:26
阅读次数:
135