首页 > 其他 > 详细

luogu P3047 [USACO12FEB]Nearby Cows G

时间:2020-06-04 22:04:25      阅读:55      评论:0      收藏:0      [点我收藏+]

这道题直接设状态不太好做。

我们先设\(g[x][i]\)表示\(x\)子树内跟它相距不超过\(i\)的点的点权之和。这个一遍\(dfs\)就可以搞定。

现在的问题是怎么计算非\(x\)子树内的贡献(我当时想了好久楞是没想出来呜呜呜)。其实很简单,有了\(g\)数组的辅助,我们现在可以直接设\(f[x][i]\)表示与\(x\)相距不超过\(i\)的点的点权之和。转移方程:

\[f[x][i]=f[fa][i-1]-g[x][i-2]+g[x][i] \]

其中\(fa\)表示\(x\)的父亲节点。容易知道根节点的\(f\)数组等于\(g\)数组,所以我们只要这样递归下去就可以了,其实这题就是一个简单容斥。

luogu P3047 [USACO12FEB]Nearby Cows G

原文:https://www.cnblogs.com/With-penguin/p/13045853.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!