
树上dp
Zeolim
这个作者很懒,什么都没留下…
展开
-
[换根DP] P1364 医院设置
其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1。如上图中,若医院建在1 处,则距离和=4+12+2*20+2*40=136;若医院建在3 处,则距离和=4*2+13+20+40=81……对于每个根可以很容易的通过一遍dfs获得答案然后考虑换根,对于根u v 将根从u换...原创 2019-10-30 22:22:27 · 303 阅读 · 0 评论 -
[换根dp] Codeforces Round 67 (Rated for Div. 2) E - Tree Painting
题意:给定一颗树,第一次选一个点涂黑,贡献是与当前点相连的白点数量(联通分量),剩下每次只能选与黑点相邻的白点,直到整棵树涂黑,问最大能贡献多少考虑问题本质,相连的白点就是子树大小,不管选择方式如何只要根固定了答案是唯一的。并且考虑维护子树大小数组,可以发现对于根与根相邻的两点间子树大小非常好转移 (总数固定,另一个点的儿子数也知道)所以可以二次扫描对每个点做根重新转移统计答案即可...原创 2019-10-30 08:58:43 · 262 阅读 · 0 评论 -
[树上DP] I 2019 P2634 [国家集训队]聪聪可可
求树上简单路径长度为2019倍数的路径条数解题思路 :二维状态dp[i][j]代表i节点的子树上所有点到i的距离为j的个数考虑两点u, v,两点间的贡献为ans += dp[u][i] * dp[v][(2019 - i - v + 2019) % 2019]; i =0 - 2018此时u的贡献会转移为dp[u][(i + val(边权)) % 2019] += d...原创 2019-10-08 20:54:07 · 326 阅读 · 0 评论