SDOI2013 直径 题目描述 小Q最近学习了一些图论知识。根据课本,有如下定义。树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度。如果一棵树有N个节点,可以证明其有且仅有N 1 条边。 路径:一棵树上,任意两个节点之间最多有一条简单路径。我们用 dis(a,b)表示点a和点b的路径上 ...
分类:
其他好文 时间:
2018-08-22 11:09:58
阅读次数:
260
"题目链接" Solution 我们直接找到一条直径 $s$,起点为 $begin$,终点为 $end$. 从前往后遍历点 $u$ ,若子树中最大的距离与 $dis(u,begin)$ 相等. 很显然这个点不在公共线段上,很显然可以用子树的中的一段接上,形成一条新的直径. 然后从后往前遍历,同样的道 ...
分类:
其他好文 时间:
2018-08-20 22:59:43
阅读次数:
221
闲话 一个计数问题入门级选手来搞这种东西 最初的动力来自高一化学课有机物(滑稽)。《同步导练》出了个这样的选择题。 一个结构极其庞大的烷烃(二十几个碳原子),求它的主链长度。 这不是个求树的直径的裸题么?!OI选手扫两眼就出来了,然而别的同学费劲心思找完了还是错的。 于是第一次在常规课中体验到作为O ...
分类:
其他好文 时间:
2018-08-11 01:20:31
阅读次数:
282
网上的大多是用树的直径做的,但是一些比较巧妙的做法,来自https://www.cnblogs.com/qldabiaoge/p/9315722.html。 首先用set数组维护每一个节点所连接的边的信息,然后遍历一遍所有的点,把度为1的点放入集合s,(把距离作为第一要素); 然后把集合s中的点从小 ...
分类:
其他好文 时间:
2018-08-06 14:32:15
阅读次数:
162
感谢金牌果善意的提醒~~~树形dp还是有点麻烦。。 ...
分类:
其他好文 时间:
2018-08-02 20:38:29
阅读次数:
120
有一个经典的问题存在于这个子问题里,就是求出每个点到其他点的最远距离。 这个问题和树的直径有很大的关系,因为事实上距离每个点最远的点一定是直径的两个端点。所以我们可以很容易地进行$3$遍$Dfs$就可以算出这个了,并假设它为$d$。 我们考虑把$d$最小的点设为根,把原树变成一棵有根树,一个重要的结 ...
分类:
其他好文 时间:
2018-07-31 23:40:13
阅读次数:
215
题意: n个点,m条边,m <= n <= 100000,边的长度都为1。 点从 0 ~ n-1 编号。开始时图是不连通的,并且没有环。 通过加入一些边后,可以使图连通。要求加入的边不能多余(即生成的图是一棵树)。 问连通后的图,任意两点之间的距离的最大值,最小可以是多少? 既然刚开始图不连通也无环 ...
分类:
Web程序 时间:
2018-07-27 23:09:34
阅读次数:
185
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1912 [算法] 树的直径 [代码] ...
题目大意 : 有一棵有 $4$ 个节点个树,有连边 $(1,2) (1,3) (1,4)$ ,一共有 $q$ 次操作,每次选择一个节点,新建两个节点 $n + 1, n + 2$ 向其连边,每次操作完之后求树的直径的长度 $1 \leq q \leq 5 \times 10^5 $ ...
分类:
其他好文 时间:
2018-07-23 22:08:39
阅读次数:
167
Codeforces题号:#379F 出处: Codeforces 主要算法:LCA+树的直径 难度:4.4 思路分析: 给出q个操作,每次在一个节点上接上两个叶子。每一次询问树的直径。 暴力做法:每一次操作暴力BFS两遍……然而……复杂度时\(O(Q * 2n\),爆到不知哪里去了。 其实我们会发 ...
分类:
其他好文 时间:
2018-07-14 13:01:23
阅读次数:
191