当前位置: 首页 > news >正文

Trick——树

Part1

问题:统计一条根链上的点权值出现次数。

首先不难想到对根链建立主席树,可以做到 \(O(nlogn)-O(logn)\) 的优秀复杂度。
码量有些大,但它是在线算法。

离线算法
我们这样考虑:
若知道 \(x\) 的根链的点权集合,那么可以 \(O(1)\) 转移为 \(fa_x\)\(son_x\) 的根链点权集合。(本质上是莫队的思想)
于是通过离线将询问放在点上,通过一次 \(dfs\) 统计答案,点权集合用 桶 或 哈希表。
时间复杂度 \(O(n)\)
另一种思考角度:可以理解为搜索时的路径记录。

拓展问题:树上任意两点之间的链上的点权值出现次数。
这可以通过树上前缀和进行转化为根链问题。(\(ans_{x,y}=ans_{x,1}+ans_{y,1}-ans_{lca,1}-ans_{fa_{lca},1}\)

http://www.jsqmd.com/news/47091/

相关文章:

  • windows的句柄和linux的fd对比
  • 20251117~20251123NOIP模拟赛
  • 谁又不是一边破碎一边前行
  • Java的第一个程序
  • 题解:qoj14419 Maximum Segment Sum
  • 20232310 2025-2026-1 《网络与系统攻防技术》实验七实验报告
  • 完整教程:基于Python楼王争霸劳动竞赛数据处理分析
  • 46
  • 2025.11.21博客
  • html导出pdf
  • 【第7章 I/O编程与异常】为什么句柄看起来像指针却不是指针?
  • SQL 基础语法
  • 实用指南:暖手宝方案开发,暖手宝MCU控制方案开发设计
  • NVM 与 单节点下PM2进程守护 安装配置以及使用教程完整指南(含 Node.js 环境搭建)
  • 北大六院的诊断
  • Pycharm远程连接服务器项目 - 实践
  • django项目前端模版文件,在pycahrm无法使用ctrl+alt+l格式化代码的解决办法
  • 北大六院后看又相
  • TPAMI 2025 | 从分离到融合:新一代3D场景技术建立双重能力提升!
  • 详细介绍:后端开发常用Linux命令
  • QT:Qt5.14向文档输出表格--编译异常信息
  • 《程序员修炼之道》阅读笔记5
  • java面向对象知识补充
  • 卷积神经网络的引入3 —— MLP 与 CNN 在更大数据集上的性能对比实验
  • 全网都在找的Nano Banana Pro API 来了!便宜稳定0.15/张
  • 通过DataReader获取sql查询的字段元数据信息
  • 2025.11.21 - A
  • 2025年新版ADB工具箱下载+驱动+ADB指令集+fastboot刷机ROOT程序
  • P7960 [NOIP2021] 报数__洛谷题解
  • 与括号序列相关的 DP 笔记