树的直径教学思路
首先根据树的直径的性质,即它为树上两个最远点的距离,推出求解找出直径的两种方法.
1:两次遍历法.
适用条件:树上的边权必须为正,如果边权为负则不再适用
2:最长链加次长链
适用条件:边权可正可负,相较上一种方法,它可求解出关于子树更多的信息,例如求树上所有点,均找出它们的最远距离,就可用这种方法+换根法进行求解
其次对于直径的一些附加信息的求解,主要有
1:直径上包括哪些点
2:直径上包括哪些边
3:直径有多少条
再次,直径的简单拓展,主要有
1:半径的求法,所谓半径即某个点,它的最远点距离是最小的。这样当求2棵树或多棵树合并的时候,可以用到。(对应习题dream),另对于一个树,可求出它的半径,那如何求出所有子树的半径?
2:如果存在多条直径,则必然交于一点.(对应习题缩短树的直径)
3:树上所有点,其对应的最远点,必然为直径的某个端点.(对应习题树网的核)
最后,今后可能遇到的问题
1:当树上边权不断变化时,使用线段树等数据结构维护直径
标签:思路,求解,边权,教学,半径,习题,树上,直径 来源: https://www.cnblogs.com/cutemush/p/15939559.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。