专栏文章
题解:P13342 [EGOI 2025] 风力涡轮机
P13342题解参与者 3已保存评论 2
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @miot6n6u
- 此快照首次捕获于
- 2025/12/03 00:44 3 个月前
- 此快照最后确认于
- 2025/12/03 00:44 3 个月前
首先考虑 的部分分,相当于查询最小生成树路径上的最大边,也就是 在重构树上的 lca。
考虑全部数据,相当于找出重构树上 个叶子节点点点权前 大的两两 lca,注意到重构树上每个点代表一次合并,因此 个叶子点恰有 个 lca,从而问题变为求解编号在 内点的两两 lca 点权和。
此时我们考察重构树某个点何时会被贡献到答案里,注意到每个点 有且仅有两个儿子,不妨记作 ,该点会被贡献到答案当且仅当 的子树内均存在编号在区间 的点。
也就是说,若存在 ,所有包含 的询问都会获得 的贡献,其中 是 的点权(注意该贡献不能累加,所以对于每个节点要将贡献范围去并)。
仿照铃原露露的手法即可求出支配点对,扫描线配合树状数组完成后续工作即可。没有做过铃原露露的同学可以继续阅读。
考虑画出 平面(横轴为 ,纵轴为 ),平面上一个点代表一次询问,那么一个 的贡献区间相当于左上的 2-side 矩形。由于贡献是覆盖的,因此若当 固定时, 只需考虑尽可能小的那个即可,因此考虑启发式合并维护子树叶子节点编号,合并时将被合并点与其对应的前驱后继凑成 的贡献对,扫描线处理,贡献对的数量和启发式合并的复杂度是同阶的。
另外注意由于对于每个点 ,其贡献是不能叠加的,所以对 从 到 更新时,还需额外记录每个 的最小 值,用树状数组实现单点修改,区间查询即可。
综合时间复杂度 。
代码很好写,如果实在需要私信找我要。
相关推荐
评论
共 2 条评论,欢迎与作者交流。
正在加载评论...