树的bfs
题意:
给你一棵有根树,树的边有权值。树上每个点有两个属性,分别是到根的距离dist和到根的路径的边数num。
你需要选取一个集合,使得它满足以下条件
1.任意两个点的公共祖先只有一个,也就是只能是根
2.集合所有点的dist之和除以num之和要最大
输出这个dist之和除以num之和
数据范围:
点数<=1000
思路:
首先条件1就是说集合不能选根,避免了0/0的情况
细想条件2,这个集合完全可以只选一个点,只要它对应的比值最大就可以了,所以答案就是找比值最大的点,输出对应比值
如何求dist和num,递推就行了。从根开始bfs,即可
题意:
给你一棵有根树,树的边有权值。树上每个点有两个属性,分别是到根的距离dist和到根的路径的边数num。
你需要选取一个集合,使得它满足以下条件
1.任意两个点的公共祖先只有一个,也就是只能是根
2.集合所有点的dist之和除以num之和要最大
输出这个dist之和除以num之和
数据范围:
点数<=1000
思路:
首先条件1就是说集合不能选根,避免了0/0的情况
细想条件2,这个集合完全可以只选一个点,只要它对应的比值最大就可以了,所以答案就是找比值最大的点,输出对应比值
如何求dist和num,递推就行了。从根开始bfs,即可
总结:bfs求每个点的dist和num,输出比值最大的