树的直径
CaprYang
这个作者很懒,什么都没留下…
展开
-
Educational Codeforces Round 58 (Rated for Div. 2) D. GCD Counting 树形dp 分解质因数
题解 题目大意 给你一个n的节点的无向树 每个点都有一个值 问路径上所有节点的gcd>1的最长路径长度 考虑2e5内的数字公因数最多7个 2357111317>2e5 素数筛把2e5内所有数字质因子存在vector 使用树形dp 自底向上求解 d[i][j]表示使用节点i第j公因子到达叶子的最多顶点 p[i][j]表示使用节点i第j公因子经过i点的最多顶点 在DFS回溯后 遍历当前节点...原创 2019-01-17 18:37:54 · 198 阅读 · 0 评论 -
Roads in the North POJ - 2631 树的直径 BFS | 树形dp
题解 题目大意 给你n-1条带权边组成一个n个节点的树 题目没给n接收到文件尾 求这个树的直径 树的直径为树中两个距离最远点的距离 方法1 两次BFS 第一次任找一点为起点进行BFS得到最远的点p 点p一定为直径上的一个端点 第二次以p为起点再次BFS得到最远的点q 并求出pq之间的距离即为树的直径 AC代码 #include <stdio.h> #include <iostre...原创 2019-01-16 17:06:28 · 161 阅读 · 0 评论 -
C 小A与欧拉路 牛客练习赛40 树的直径
题解 首先考虑欧拉回路的情况,由于所给的图是一棵树则如果想构成欧拉回路就需要将每条边都复制一份。 但是题目没要求回到出发点,则可以只从一个点出发到另一个点结束,所走路径也就是少了从出发点到终止点的路径。 这个路径可以自己选择,则选择所给树形图中权值长度最大的两个点收益最大,也就是树的直径。 树的直径使用两次DFS可以得到。 AC代码 #include <stdio.h> #includ...原创 2019-02-18 20:44:18 · 492 阅读 · 0 评论