当前位置: 首页 > 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.zskr.cn/news/56808.html

相关文章:

  • 谁又不是一边破碎一边前行
  • 题解:qoj14419 Maximum Segment Sum
  • 46
  • html导出pdf
  • 实用指南:暖手宝方案开发,暖手宝MCU控制方案开发设计
  • 博客发文公示
  • 2025年【口碑好的/比较好的/靠谱的】水密门【公司/工厂/厂家】推荐/排行榜 哪家好/强/靠谱
  • Pycharm远程连接服务器项目 - 实践
  • TPAMI 2025 | 从分离到融合:新一代3D场景技术建立双重能力提升!
  • java面向对象知识补充
  • 卷积神经网络的引入3 —— MLP 与 CNN 在更大数据集上的性能对比实验
  • Docker命令入门
  • P7960 [NOIP2021] 报数__洛谷题解
  • 图床创建:github+Picgo+obsidian 带有同步删除的自动上传
  • 2055.11.21
  • 深入解析:windows显示驱动开发-CCD api的摘要及方案(一)
  • Gephi怎样优化MySQL数据的展示效果
  • 揭秘Java对象的内存占用量:从面试题到底层原理
  • nju实验六 移位寄存器及桶形移位器
  • 基于 Erlang 的英文数字验证码识别系统设计与实现
  • leetcode14. 最长公共前缀
  • 洛谷 B4409:[GESP202509 一级] 商店折扣 ← 模拟算法
  • nju实验三 加法器与ALU
  • 信息论(八):吉布斯不等式的证明
  • 题解:AT_agc028_e [AGC028E] High Elements
  • CSP-J2025总结
  • MineContext:我第一次感觉 AI 真正在“主动帮我管理生活”
  • NCHU OOP-BLOG1-电梯调度-23207329-姚子康 - 翊尘
  • 操作系统的基本概念
  • 开发智联笔记项目时所遇问题(8)