首页 > 其他分享 >P7880 [Ynoi2006] rldcot

P7880 [Ynoi2006] rldcot

时间:2024-03-19 18:25:25浏览次数:15  
标签:log P7880 Dsu Ynoi2006 三元组 答案 rldcot 贡献

题意

给定一棵树,求区间 \([l, r]\) 中任意两点的 LCA 的不同的带权深度的个数。

Sol

很容易想到 Dsu on tree。

因为当前点 \(x\) 作为 LCA 产生贡献当且仅当有两点 \(u, v\) 分别在 \(x\) 的不同子树中。

集中注意力,不难发现对于一个 \(u\) 来说,只有子树中她在序列上的前驱后继会对她产生贡献。

考虑用一个三元组 \((a, b, dep)\) 表示一个会对答案产生贡献的答案。

注意到因为跑了 Dsu,会对答案产生贡献的三元组的级别在 \(O(n \log n)\)。

Dsu 上使用 set 维护前驱后继,复杂度 \(O(n \log ^ 2 n)\)。

现在问题变为对于三元组统计 \(l \le a, b \le r\) 的答案。

直接离线跑扫描线即可。

复杂度:\(O(n \log ^ 2 n + q \log n)\)。

标签:log,P7880,Dsu,Ynoi2006,三元组,答案,rldcot,贡献
From: https://www.cnblogs.com/cxqghzj/p/18083657

相关文章

  • P7880 [Ynoi2006] rldcot
    lxl上课讲的题,来写个题解。样例很强,赞美lxl!青蛙,呱????。\(\text{rldcot}=\text{rangelcadepthcountontree}\)。/yiw(猜的)。题目传送门给出一棵\(n\)个点的有根树。定义\(\text{LCA}(x,y)\)为\(x,y\)两点树上的最近公共祖先,\(dep_x\)为\(x\)到根路径上的......
  • [P7880][Ynoi2006] rldcot
    [Ynoi2006]rldcot题目描述给定一棵\(n\)个节点的树,树根为\(1\),每个点有一个编号,每条边有一个边权。定义\(dep(x)\)表示一个点到根简单路径上边权的和,\(lca(x,y)\)......