题目传送门
这题相对POJ2114改了个询问……询问的是等于
k
k
k的最少边数……
考虑树形dp……
d
p
i
dp_i
dpi表示权值为
i
i
i的路径所用最少边数。
点分治照常,找到重心分成若干子树,可以统计子树内的点到根的距离和权值。就可以dp了!
\begin{equation}
dp_i=\min{dp_{i-dis_x}+dep_x}
\end{equation}
然后就可以统计答案了……
然后再用子树内的点到根的距离更新一遍
d
p
d
i
s
x
dp_{dis_x}
dpdisx,这是树分治的情况3。
统计完一个子树的答案,将信息清空,然后递归点分治过程……
时间复杂度我猜是
O
(
n
log
2
n
)
O(n\log_2n)
O(nlog2n)。
Code
[树的点分治] [树形DP] [BZOJ2599] [IOI2011] Race
最新推荐文章于 2019-01-09 22:11:00 发布