卧薪尝胆,厚积薄发。
湖南集训 谈笑风生
Date: Fri Mar 01 17:31:53 CST 2019
In Category:
NoCategory
Description:
给出一棵以
$1$
为根的树,每次给出一个二元组
$(u,k)$
,询问三元组
$(u,b,c)$
的个数:
$u,b,c$
均 不同,且
$u,b$
均为
$c$
的祖先,
$u,b$
的距离不超过
$k$
。
$1\leqslant n\leqslant 3\times 10^5$
Solution:
1、
$b$
是
$u$
的祖先,
$b$
有
$\min(k,dep[u]-1)$
种选法,
$c$
有
$siz[u]-1$
种选法,答案就是
$\min(k,dep[u]-1)\times(siz[u]-1)$
。显然可以
$O(1)$
计算。
2、
$b$
不是
$u$
的祖先,则
$b$
满足
$b\in subtree(u),dep[b]-dep[u]\leqslant k$
并且贡献为
$siz[b]-1$
,显然是一个二维数点问题可以用主席树解决。
Code:
没有代码
In tag:
数据结构-主席树
Copyright © 2020
wjh15101051
ღゝ◡╹)ノ♡