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?

代码

 
上一篇:SqlServer发布订阅


下一篇:gSoap传输二进制数据