求在图中新建一条边后 剩下的最少的桥的数量。。先tarjan求桥的数量。。然后缩点。。以连通分量为点建图 bfs求直径 最后用桥的数量减去直径即为答案 bfs求直径 https://www.cnblogs.com/WTSRUVF/p/9307517.html #include <iostream> ...
分类:
其他好文 时间:
2018-07-13 22:21:59
阅读次数:
195
两遍bfs即可 分析:一开始任取一个点u进行搜索查找出距离点u最远距离的点v和长度 第二次dfs则从第一次中的v找出距离点v最远距离的点的路径长度 ...
分类:
其他好文 时间:
2018-07-13 22:17:46
阅读次数:
112
题目大意 : 给你一棵 $n$ 个点构成的树基环树,你需要删掉一条环边,使其变成一颗树,并最小化删掉环边后的树的直径。 $n \leq 2 \times 10^5$ 树的边权 $ \leq 10^9 $ ...
分类:
其他好文 时间:
2018-07-12 18:13:59
阅读次数:
186
题目链接:E. We Need More Bosses 题解:tarjan有向图缩点之后求树的直径就是答案:应为在同一个强联通里的边就不是必须边,参考了这个 有个相似的题 题目链接:E. Anton and Tree 题意:就是一次操作选中一个点并把所有到这个点最短路经过是颜色相同的点颜色反转,问至 ...
分类:
其他好文 时间:
2018-07-11 19:55:41
阅读次数:
231
http://acm.hdu.edu.cn/showproblem.php?pid=4607 题意 一颗n个顶点的树,现在只想访问其中k个,问最短路径长度为多少。 分析 首先,最短的路径当然是一条链。那么我们需要求树的直径。求法:先从任意一点dfs到最深处v,再以v为根深搜,得到的最长路径便是树的直 ...
分类:
其他好文 时间:
2018-07-09 00:37:37
阅读次数:
166
Description 给出N个点,N-1条边的连通图. 现要求删除一条边,使得连通块的直径总和最大.所谓连通块的直径是指连通块中最远两点之间的距离。 问:直径总和最大是多少? Description 给出N个点,N-1条边的连通图. 现要求删除一条边,使得连通块的直径总和最大.所谓连通块的直径是指 ...
分类:
其他好文 时间:
2018-07-08 21:16:16
阅读次数:
224
/*By QiXingzhi*/ #include #include #include #include #define r read() #define Max(a,b) (((a)>(b)) ? (a) : (b)) #define Min(a,b) (((a) '9')) c = getcha... ...
分类:
其他好文 时间:
2018-07-06 19:44:30
阅读次数:
149
意识流虚树 首先考虑只有一个党派,那么可以O(n)求树的直径,步骤是随便指定一个根然后找距离根最远点,然后再找距离这个最远点最远的点,那么最远点和距离这个最远点最远的点之间的距离就是直径 那么考虑多党派,也这样做,假如有一棵只有这个党派的牛构成的虚树,那么求直径也可以按照上面的做法 但是实际上并不用 ...
分类:
其他好文 时间:
2018-06-23 13:12:32
阅读次数:
187
题目 luogu3761 题解 显然,只有在原树直径上删边,才可能使新树的直径变小,于是枚举直径上每条边 算了直径复杂度也是O(n)级的,干脆直接暴力枚举所有的边 删边后原树被分成 l, r 两颗子树,组成的新树直径有三种可能 1. 新树的直径为子树 l 的直径 2. 新树的直径为子树 r 的直径 ...
分类:
其他好文 时间:
2018-06-13 20:56:19
阅读次数:
190
/*树的直径是指树的最长简单路。求法: 两遍BFS :先任选一个起点BFS找到最长路的终点,再从终点进行BFS,则第二次BFS找到的最长路即为树的直径; 原理: 设起点为u,第一次BFS找到的终点v一定是树的直径的一个端点 证明: 1) 如果u 是直径上的点,则v显然是直径的终点(因为如果v不是的话 ...
分类:
其他好文 时间:
2018-06-13 11:56:25
阅读次数:
182