首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
巨木之森专题
牛客 6874 A - 巨木之森 (树的直径)
链接 : A - 巨木之森 题意: 每支小队从每个点出发 ,遍历完整颗树的花费是走过路径的和,要求在花费 m 以内,最多可以有多少个小队遍历完整颗树。 思路: 可以求出每个点遍历整棵树的花费 ,排个序,从小到大选就好了,关键在于求花费。可以发现,要想遍历完整颗树,再回到原来的位置,那么就要把每条边都走两遍,但是现在不需要回到原来的位置,所以只要找到离根节点最远的点,用总权值的两倍减去 这条
阅读更多...
树上直径---巨木之森
定理---树上任意一点的最远点一定是树的直径的端点。 可以发现,要想遍历完整颗树,再回到原来的位置,那么就要把每条边都走两遍,但是现在不需要回到原来的位置,所以只要找到离根节点最远的点,用总权值的两倍减去 这条最远边的长度就好了。 于是,我们可以先以某点dfs,求出这点的最远距离----一定是树直径的是某个端点p。 再以该点p出发,dfs找出另一个端点 q; 最后,再dfs q
阅读更多...