码迷,mamicode.com
首页 > 其他好文 > 详细

poj1741:树形dp(VIP)

时间:2015-12-15 22:48:19      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

题目大意:给定n个节点组成的树,树有边权,现在给定一个点u和v,dis(u,v)表示u和v节点的最近距离,问dis(u,v)<=k的uv对数,n <= 1万,k不定,权值<=1000。

orz看着代码理解,先求出树的重心(还是质心?),避免树成了一条链使得算法退化。把无根树转成有根树。然后求出距离根节点的距离,能够计算出tmp即d(u)+d(v)<=k的对数,能够做到O(n)统计,然后计算出在同一颗子树中的重复算了的tmp2,那么经过根节点的话就是tmp-tmp2。

按照这样的话再递归计算就OK了,复杂度不会算,但是看起来好像比O(n^2)好多了

 

http://blog.csdn.net/woshi250hua/article/details/7723400

poj1741:树形dp(VIP)

标签:

原文地址:http://www.cnblogs.com/fighting-to-the-end/p/5049695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!