• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Revitalize
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理

2025年2月16日

树上DP
摘要: 1、基础树形 DP 树形 DP 处理的问题是在树上计算某值的最优解(如最小值)或方案数等问题,通常会有父子节点之间的关系作为限制条件。 譬如说,要在树上选一些点,要求对任意点不能同时选择它和它的父节点,求选出的点的最大点权和。这就是一个典型的树上 DP 问题。 通常来说,我们设计的状态是:\(dp[ 阅读全文
posted @ 2025-02-16 15:04 Revitalize 阅读(30) 评论(0) 推荐(0)
 
并查集
摘要: 例题引入:有 \(n\) 个点,\(m\) 条无向边连接,求联通块数 假设我不会 DFS 1.暴力 \(n^2\) 给每个点加一个点权(或可称之为颜色)\(w[i]\), 初始时 \(w[i] = i\)。 若连接两个点权相等的点,不管。 若连接两个点权不相等的点 \(i\) 、 \(j\) ,那么 阅读全文
posted @ 2025-02-16 15:02 Revitalize 阅读(6) 评论(0) 推荐(0)
 
树状数组
摘要: 例题引入:维护一个序列 \(a\),支持单点加操作,查询区间和。 (我不会告诉你学完线段树后树状数组就没用了) 1.简化版本 0x01.无操作,查询单点值 就是一个最朴素的数组,入门语法题 0x02.单点加,查询单点值 还是语法题,没手都行 0x03.无操作,查询区间和 红题,前缀和,设。 \(s_ 阅读全文
posted @ 2025-02-16 15:00 Revitalize 阅读(2) 评论(0) 推荐(0)
 
ST表(RMQ)
摘要: 例题引入:维护长度为 \(n\) 的序列 \(a\) ,\(q\) 个询问,查询区间最大值 1.暴力 \(n^2\) 由于 \(\max\) 没有像加法,乘法那样的可差分性,所以不能搞前缀和,只能 \(\Theta (n\times q)\) 硬跑,\(10^5\) 直接 T 到飞起 2.倍增优化( 阅读全文
posted @ 2025-02-16 14:51 Revitalize 阅读(4) 评论(0) 推荐(0)
 
线段树
摘要: 线段树 例题引入:维护一个序列 \(a\),支持区间加,查询区间和 1.结构 线段树是一棵二叉树,树根的“管辖范围”是 \(a[1]\) 到 \(a[n]\)。 每个节点的左儿子的管辖范围是该节点管辖范围的左半段, 右儿子的管辖范围是该节点管辖范围的右半段。 叶子节点的管辖范围就是 \(a[i]\) 阅读全文
posted @ 2025-02-16 14:46 Revitalize 阅读(15) 评论(0) 推荐(0)
 
树链剖分
摘要: 一道好好的数据结构题,有的出题人会把它放在树上来强迫选手写树剖。 例题引入:有根树上 \(n\) 个点有点权,\(4\) 种操作: 1. 将一条链上的所有点加上一个值。 2.查询一条链的点权和。 3.将一棵子树的所有点加上一个值。 4.查询一棵子树的点权和。 (注意:本文中某个节点的“子树”包含该节 阅读全文
posted @ 2025-02-16 14:37 Revitalize 阅读(17) 评论(0) 推荐(0)
 
 

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3