poj 3140 Contestants Division(树形dp? dfs计数+枚举)



 

本文出自   http://blog.csdn.net/shuangde800


--------------------------------------------------------------------------------------

 

题目链接 poj-3140


 

题目

   给n个节点的带权树,删掉其中一边,就会变成两颗子树,
   求删去某条边使得这这两颗子树的权值之差的绝对值最小。


思路

   直接dfs一次,计算所有子树的权值总和tot[i]
   如果删掉一条边(v, fa),fa是v的父亲节点,
   那么v子树权值总和为tot[v],显然另一棵子树的权值总和就是sum-tot[v],
   最总取最小绝对值即可。
   这题要注意用long long

   其实就是dfs+枚举,想不通为什么有人会把这题列为树形dp?


代码

 

 

 

 



 

你可能感兴趣的:(visio)