题意:
给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于等于l的点有多少个。
挺有意思的啊这道题
设x节点在dfs序中的位置是 $dfn_x$ ,以它为根的子树大小为 $size_x$ 。
那么这个子树内节点的 $dfn$ 值一定位于区间 $[dfn_x, dfn_x + size_x)$ 内。
这样就把问题转化成了区间第 $k$ 大的问题,用主席树维护即可。
1 |
|
题意:
给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于等于l的点有多少个。
挺有意思的啊这道题
设x节点在dfs序中的位置是 $dfn_x$ ,以它为根的子树大小为 $size_x$ 。
那么这个子树内节点的 $dfn$ 值一定位于区间 $[dfn_x, dfn_x + size_x)$ 内。
这样就把问题转化成了区间第 $k$ 大的问题,用主席树维护即可。
1 | #include <bits/stdc++.h> |