2026春note

1.问题意识->抓主要矛盾
2.Dp(1)状态(I)阶段 (II)可求(III)可转移(2)转移
3.Dp优化(1)复杂度 状态*转移->区分空间复杂度&状态复杂度
(2)优化 (I)利用状态间的关系(II)预处理前后无关的转移
2026.2.8课堂总结
一,DP相关
1.DP必备条件:
(1)最优子结构:即由A状态的最优解可推到B状态的最优解
若不满足,Solve:(I) 重设状态(II)讨论不满足情况的性质
(2)重叠子问题:即某层状态可被分为性质相似,结构几乎相同的子问题
2.(求最优解)DP可看作以状态为点,转移为边的图并在其上求最短路
3.有环DP可使用SPFA求解,相对于Dijkstra,优点在无需建图,可以直接松弛
4.状态:I类:转移,可求,阶段;II类:重叠子问题
5.后效性:定义:不在状态中的信息对后面产生效用
DP要求无后效性,
若有后效性 Solve:(1)重设状态(2)细分方案,扩充状态(3)费用提前计算
二,从答案出发考虑问题
1.从\(答案\)的形式出发
(1)考虑最后形式(由过程推的),进行求解(大概率与过程无关)
(2)考虑最后一步进行前的形式
2.对答案进行调整:先构造满足一部分条件的答案,再依据其他条件对答案进行调整
三,从\(限制\)的角度考虑问题
1.去掉限制:即通过某种算法去除限制
2.满足限制:即构造答案满足所有限制
3.限制的存在:某些限制其实并不成立,可以不做考虑
补注:排序贪心需要具有传递性(模拟sort的比较cmp)
四,从\(边界\)的角度考虑问题
1.树上问题:优先考虑\(根节点\)\(叶子节点\)
2.权值有关问题:优先考虑\(a_{max},a_{min}\)
\(tip:当边界状态被解决时可能会有新的边界状况产生\)
3.考虑\(n=1,n=2\)时,推广从\(n=k\)\(n=k+1(归纳)\)
补注:最小增量
1.核心原理:不一次性全局重算、不改到底,只做最小必要的变化 / 最小代价的更新 / 最小步长的逼近,逐步逼近最优或目标状态。
2.性质:(1):变化最少 (2):代价最小 (3): 逐步收敛
3.思想内核:(1):局部最优累积成全局最优 (2): 复用历史、拒绝重复计算
4.应用:(1):\(A*/Dijkstra\) 算法 (2):最小生成树\((kruskal/prim)\)
五,从反方向考虑问题(正难则反)
1.添加->删除 例如
2.从前到后->从后到前在这道题中,若为静态,考虑对顶堆,但为动态,从前至后不好做,考虑从后到前
3.考虑计数->考虑性质
在这道题中,它具有的性质就是\(1<=a_i<=9 \rightarrow {2,4,6,8},{3,6,9}相对位置不变\)
4.在图论中:建边\(\rightarrow\)删边
六,从建模的角度考虑问题
1.基本步骤:寻找问题\(\rightarrow\)转化问题\(\rightarrow\)识别新问题\(...\)直到新问题可以被解决
2.序列问题\(\rightarrow\)图论问题
即将\(i\)\(p[i]\)连边,易得性质:该图由若干个环构成,然后识别新问题
Tip:球盒问题
球盒问题是组合数学中的经典模型,其解法取决于三个核心条件:
球是否相同
盒子是否相同
是否允许空盒
假设我们有 n 个球和 m 个盒子,以下是这八种情况的详细分类和对应公式。
📌 球不同,盒子不同
这是最直观的情况,每个球都可以独立地选择放入任何一个盒子。
允许空盒
每个球都有 m 种选择,总共有 n 个球,因此方案数为:
mⁿ
不允许空盒
这种情况要求每个盒子至少有一个球。可以通过第二类斯特林数 S(n, m) 来解决。S(n, m) 表示将 n 个不同元素划分为 m 个非空、不可区分的集合的方案数。由于盒子是可区分的,我们需要对这 m 个集合进行全排列,因此方案数为:
m! ⋅ S(n, m)
这个值也可以通过容斥原理直接计算:
∑ᵢ₌₀ᵐ (-1)ⁱ ⋅ C(m, i) ⋅ (m-i)ⁿ
📌 球不同,盒子相同
此时盒子是不可区分的,我们只关心球是如何被分组的。
允许空盒
这等价于将 n 个不同的球划分成 k 个非空集合,其中 k 可以是 0 到 m 之间的任意整数。总方案数是所有可能 k 值的第二类斯特林数之和:
∑ₖ₌₀ᵐ S(n, k)
(当 k > n 时,S(n, k) = 0)
不允许空盒
这正是第二类斯特林数 S(n, m) 的定义:将 n 个不同元素划分为 m 个非空、不可区分的集合的方案数。
它满足递推关系:S(n, m) = S(n-1, m-1) + m ⋅ S(n-1, m)
📌 球相同,盒子不同
因为球是相同的,我们只关心每个盒子中球的数量。
允许空盒
这个问题等价于求不定方程 x₁ + x₂ + ... + xₘ = n 的非负整数解的个数。可以使用隔板法(也称插板法)的变形,通过引入 m 个“虚拟球”来解决,方案数为:
C(n + m - 1, m - 1)
不允许空盒
这等价于求不定方程 x₁ + x₂ + ... + xₘ = n 的正整数解的个数(即每个 xᵢ ≥ 1)。使用标准的隔板法,在 n 个球形成的 n-1 个空隙中插入 m-1 个隔板,方案数为:
C(n - 1, m - 1)
(此公式在 n ≥ m 时有效,若 n < m 则方案数为 0)
📌 球相同,盒子相同
这是最复杂的情况,通常没有简单的闭式公式,而是通过递推关系求解。我们用 p(n, m) 表示将整数 n 划分为 m 个正整数之和的方案数(即整数划分)。
允许空盒
允许空盒意味着实际使用的盒子数量可以是 1 到 m 中的任意值。这等价于将 n 划分为不超过 m 个正整数之和的方案数。它可以通过递推求解,递推关系为:
p(n, m) = p(n, m-1) + p(n-m, m)
其中 p(n, m-1) 代表至少有一个空盒的情况,p(n-m, m) 代表没有空盒的情况(先从每个盒子中拿出一个球)。
不允许空盒
这正是整数划分问题 p(n, m) 的定义:将 n 划分为恰好 m 个正整数之和的方案数。它同样可以使用上述递推关系进行计算。
七,从性质的角度考虑问题
1.从题目的性质:特殊的数字,计算方式或数据范围
2.找规律&打表
3.同构变换
补注:01分数规划:
01分数规划是一类求解分式最优化问题的模型
目标是在若干元素中选出一个子集,使得所选元素的“权值之和”与“成本之和”的比值最大(或最小)。
求解方式:二分答案
我们二分一个答案\(t\)
那问题转化为\(\frac{\sum a_i}{\sum b_i}\ge t\) 移项
\(\sum a_i\ge t\sum b_i\rightarrow \sum (a_i-tb_i)\ge 0\)
注:可将数据结构封装,有利于提升码风

欧拉序

  1. 基本定义
    对一棵树进行 DFS(深度优先搜索):
    进入节点时记录(节点第一次出现)
    离开节点时也记录(通常再次记录父节点)
    得到的序列称为欧拉序。序列长度为 2N - 1(N 为节点数),因为每条边会被来回经过两次,根节点只记录一次。
    2.应用:欧拉序求LCA
    原理:在欧拉序中,u,v的连续区间内一定包含LCA(u,v)且为深度最小的

求法:将LCA转化为区间最小值,使用ST表/树状数组/线段树维护

1.数学期望的定义

如果离散型随机变量\(X\)的所有可能取值为\(x_1,x_2...x_n\)其出现的概率分别为\(p_1,p_2,...p_n\)那定义\(X\)的数学期望\(E(X)=\sum_i^n{x_ip_i}\)
注:如果一个随机变量的全部可能取值是有限个或可数无限个,那么这个随机变量就被称为离散型随机变量,上述的可数可理解为构造一个关于集合\(P\)和整数集\(N_*\)之间的双射\((Bijection)\),即一一映射

2.数学期望的性质

\((1).\) 常数的数学期望:\(\forall c \in R ,E(c)=c\)
\((2).\) 线性性
\(E(\sum_i^n a_iX_i+c)=\sum_i^n a_iE(X_i)+c\)
注:该式实际表达了数学期望\(E(X)\)是一个线性函数
\((3).\) 独立变量的可乘性
对于两个独立变量\(X,Y\),有 \(E(XY)=E(X)E(Y)\)
\((4).\) 函数的数学期望
\(E(f(X))=\sum E(f(x_i))p_i\)

3.数学期望的意义

\((1).\)数学期望描述了随机变量的集中趋势
\((2).\)数学期望本质上是概率为权重的加权平均值,出现概率越高的结果,对期望值的影响(权重)就越大
例如:你参加一个游戏,\(50%\)概率赢\(100\)元,\(50%\)概率输\(50\)元。
\(E(X)=0.5×100+0.5×(−50)=25\) 元。
这并不意味着你玩一次能赢25元,而是如果你玩很多次,平均每次大约赚25元
\((3).\)数学期望代表在测试样本足够大时,你的平均结果趋近于期望值

posted @ 2026-03-01 15:04  Underthetwilight  阅读(7)  评论(0)    收藏  举报