树形DP
cadongllas
这个作者很懒,什么都没留下…
展开
-
BC#76 C_HDU5647 DZY Loves Connecting 树形DP
比赛的时候没想出来,现在发现还是一个经典的树形DP首先用size[i]表示节点i对答案的贡献同时为了推倒方便,用f[i]表示以i为根的子树的数目那么我们考虑当i的子节点j加入时,对答案的贡献首先,加入j时,会有f[i] * f[j]个新的子树加入,那么计算对答案的贡献之前的size[i]已经被计算过一次,加入j之后,对于答案的贡献是size[i] * f[j]此外,还需要统原创 2016-03-21 15:00:15 · 363 阅读 · 0 评论 -
codeforces 696B 树形dp+概率
题意:访问一颗树,在节点上记录访问时间,每次对儿子节点的访问是随机的,问每个节点被访问时间的期望在每个子树中,可以发现每个节点cur ,dp[cur]=dp[fa]+f(cur);f这个函数可以发现是把fa当根节点,得到的每个子节点的期望值,这个值跟这棵子树的节点数有关,答案是(num[fa]-num[cur]-1)/2+1#include #include #incl原创 2016-09-03 11:33:39 · 287 阅读 · 0 评论