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?
代码