题目链接:
https://www.luogu.com.cn/problem/P1351
参考博客:
https://modeststarlight.blog.luogu.org/solution-p1351
链式前向星:特别特别推荐再学习一下链式前向星
https://blog.csdn.net/acdreamers/article/details/16902023
思路:
1:树状图:只要题目中出现:无向连通图 G有 n 个点,n−1 条边+每条边的长度均为 1,你就应该直接想到这个图其实是一棵树
2:在无边权的树上随意指定一个节点为根,那么我们会发现树上距离为2的节点只有两种情况:
1:两个节点为“祖父-孙子”
2:2.两个节点互为兄弟
3:“祖父-孙子”这种情况比较好解决,在dfs便利树的时候不仅仅传递父亲(f),还把祖父(g)一起传递,那么联合权值就为w[r]*w[g](记录总和时要乘2)
4:那么我们看看兄弟情况该如何解决:设一个节点r的儿子分别是son[1],son[2],son[3]...那么他们的最大值显然是son中最大的w乘上第二大的w,用maxf和maxs分别记录一