首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
poj2631专题
POJ2631 : Roads in the North
题目链接:嘤嘤嘤 题目大意:给你一个无向带权树,让你求最长路径(树的直径) 解题思路:任选一个点,用dfs跑一遍,记录与这个点最远的点s,再从s点dfs一遍,即可求得直径。 数据给的 n <= 1e4,然而枚举每一个点都用dfs跑一遍居然也能过...这题数据有点水。 证明如下: 这里给出树的直径的证明: 主要是利用了反证法: 假设 s-t这条路径为树的直径,或者称为树上的最长路 现
阅读更多...
[树上DP] POJ2631 树的最长路径(最远点对)
题目 对于一棵n个结点的无根树,找到一条最长路径。换句话说,要找到两个点,使得它们的距离最远。 POJ2631 思路 和树的重心问题一样,先把无根树转成有根树。对于任意结点i,经过i的最长路就连接i的两棵不同子树u和v的最深叶子的路径。 基本的求法是,先随便找一个点作为根结点转换为无根树后,遍历每一个点,找出当i为根结点时的子树到叶子的最大距离d(j),在根据d(j)求出结点i作为根
阅读更多...