[USACO12DEC]逃跑的BarnRunning Away From…

[USACO12DEC]逃跑的BarnRunning Away From…

一个经典问题:

边没有边权,多次询问,查子树中距离x为L的点的个数

n<=1e5,q<=1e5

1.离线,桶维护dep,前后两次,记录桶中的变化(天天爱跑步)

O(n)

 

边有边权,多次询问,查子树中距离x小于L的点的个数

n<=1e5,q<=1e5

L固定,预处理每个点的答案

1.倍增+差分。枚举每个点考虑贡献,倍增找到链,差分打标记

2.左偏树(线段树合并),不断弹出不合法的。这些点在后面更加不合法

L不固定

子树->dfn序,转化成求一个区间内多少个数小于某个数,主席树

O(nlogn)

边权可以修改?

子树距离根的距离要修改

树状数组套主席树。O(nlog^2n)

 

posted @ 2019-02-12 21:17  *Miracle*  阅读(175)  评论(0编辑  收藏  举报