SDOI2013 直径 "题目传送" sol: 先求出任一直径同时把直径拎出来,树的非直径部分全部挂在直径上(如下)。 对于直径上的每一个点i,如果存在它到非直径上点的最大距离$g[i]$等于它到直径两端点中较短的那一段$d[i]$, 则说明这一段也可以成为直径中的一部分。 而我们需要得到所有直径的 ...
分类:
其他好文 时间:
2019-07-25 23:08:39
阅读次数:
77
7.7 1、 树形 DP 的第一个数组继承,优化复杂度。字典树分叉数为 O(n) 。dsu on tree。 树形 DP f[x][min(SIZE, m)] ,复杂度 O(nm) ,组合证明。 2、 状态为有向边的树形 DP 。 树的直径中点唯一,可以用来枚举树的直径。 3、 分数规划 dinke ...
分类:
其他好文 时间:
2019-07-07 14:31:34
阅读次数:
107
题意及思路:http://ydc.blog.uoj.ac/blog/12 在求出树的直径的中心后,以它为根,对于除根以外的所有子树,求出子树中的最大深度,以及多个点的最大深度的lca,因为每个点的最长路径一定经过根,所以找到最大深度的子树,然后在这个点和最大深度的lca上树上差分一下就好了。注意,此 ...
分类:
其他好文 时间:
2019-06-10 21:08:02
阅读次数:
200
树的直径的模板题 我们存图以后,对这张图(树)进行一次dfs,定义sum1表示从当前节点向他的儿子走的最长路径是多少,sum2表示次长路径是多少。我们每次先用当前路径的长度+当前路径前往的节点的sum1更新当前节点的sum2,如果更新后sum2大于sum1,那么我们交换他们的数值,不难发现这样是正确 ...
分类:
其他好文 时间:
2019-06-01 21:28:03
阅读次数:
110
题目描述 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 示例 : 给定二叉树 返回 3 , 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意: 两结点之间的路径长度是以它们之间边的数目表示。 分析 感觉这个 ...
分类:
其他好文 时间:
2019-05-24 22:29:35
阅读次数:
248
题意:给你一个括号序列,这个括号序列将确定一颗二叉树。有q次询问,每次询问输出这颗树的直径。 思路:https://blog.csdn.net/Huah_2018/article/details/89788074 代码: ...
分类:
其他好文 时间:
2019-05-24 22:16:56
阅读次数:
154
树的直径: 利用了树的直径的一个性质:距某个点最远的叶子节点一定是树的某一条直径的端点。 先从任意一顶点a出发,bfs找到离它最远的一个叶子顶点b,然后再从b出发bfs找到离b最远的顶点c,那么b和c之间的距离就是树的直径。 用dfs也可以。 http://poj.org/problem?id=19 ...
分类:
其他好文 时间:
2019-05-06 01:14:21
阅读次数:
126
题目大意:求多棵基环树的直径总和。思路:对于基环树系列的题,最重要的就是找环,其他操作都是基于环的。本题也是如此:一棵基环树的直径有两种情况:1、经过环上两个节点外加他们子树的最深深度,也就是dis(i,j)+dep[i]+dep[j],其中dep代表从根节点开始所能到达的最深节点,dist代表i到 ...
分类:
其他好文 时间:
2019-05-05 23:36:26
阅读次数:
180
这是一道关于树的直径的好题,值得一刷。 本题有两个难点,一个是分类讨论k,另一个是代码的实现(其实还好)。 本题k可以为1或2,因此我们分类讨论一下。 当k=1时,我们可以任选两个点连接,假设我们一条边都不连接,那么我们需要走2*m次,其中m为边的数量。假设我们在x,y上连一条边,那么我们用1个距离 ...
施工中。。。 1146C Tree Diameter 题意 交互题。有一棵 $n(n\le 100)$ 个点的树,你可以进行不超过 $9$ 次询问,每次询问两个点集中两个不在同一点集的点的最大距离。求树的直径。 题解 和 GXOI2019旅行者基本类似,二进制分组,对于每一位,编号当前位为 $0$ ...
分类:
其他好文 时间:
2019-04-22 21:06:59
阅读次数:
247