洛谷$P1600$ 天天爱跑步 树上差分

正解:树上差分

解题报告:

传送门$QwQ$!

这题还挺妙的,,,我想了半天才会$kk$

首先对一条链$S-T$,考虑先将它拆成$S-LCA$和$LCA-T$,分别做.因为总体上来说差不多接下来我就只港$S-LCA$的做法了$QwQ$

考虑对于一个观察点$j$,若要观察到玩家$i$,则有$dep_j+w_j=dep_i$.发现现在就只用统计$j$的子树内所有起点深度等于$dep_j+w_j$的就行.

显然考虑树上差分呗.就开个桶记$dep_i$,对每条路径在$S$处给$dep_S$+1,到$LCA$处给$dep_S-1$,然后在每个观察点答案就直接查$t_{dep_j+w_j}$就完事$QwQ$.

然后$LCA-T$差不多?就表达式变下,细节注意下,$over$

嗷然后最后一个点是,其实这条路径应该拆成$S-LCAson$和$LCA-T$的,$over$

猜你喜欢

转载自www.cnblogs.com/lqsukida/p/11428923.html