吹课四
Todo
博弈论
- 按照博弈状态建图跑拓扑排序判断先后手赢。
组合计数
-
就两种:dp 或 硬推。
-
等比数列。
-
观察到一个数列有关于
1 3 3 1
,1 4 6 4 1
,就应该想到binomial
了。 -
组合计数不一定为 dp,优化不了考虑一个式子算答案。
-
相邻两数操作后变成一个数,操作后整个序列长度减一的操作:大多和杨辉三角有关,因为贡献系数是杨辉三角。
-
正难则反,难解就反过来容斥。
树
- 将树分成大小为
的若干连通块,直接分。多余的点抛给父亲。e.g. prob。
并查集
- 当经过一些对边的贪心处理(e.g. 边权从小到大排序)后,如果要维护的信息可以再两颗树合并时维护,考虑并查集。
树的直径
树的重心
LCA
- 差分。
哈希
-
需要
判 的东西,大概率是哈希。 -
集合判相等,考虑集合哈希(赋随机权然后异或)(权值
着重考虑,如果否也可以离散化。e.g. prob。
DS
莫队
- 要求不强制在线,相邻区间递推复杂度较小。
线段树
-
必须满足信息可合并。
-
一些区间满足(一个点 / 一条线要求在区间中),考虑通过画图,转换为扫描线。e.g. prob。
分块
- 莫队,线段树等都不可行,使用分块。
DP
-
先写爆搜,再优化到 DP。
-
背包的状态描述一般为前
个元素,序列 DP 的状态描述一般为第 个元素,或,第 个元素结尾。 -
期望 DP:(优先考虑级从前往后)结尾状态确定:逆推(已经...(如何)到结尾状态还需要的期望,f[结尾状态]=0),开头状态:顺推(已经...后的期望,f[开头状态]=0),每种情况概率确定:状压。
-
排列 DP 的一种题型:求满足条件的排列个数,状态往往可以设计为:枚举当前填第
个数 的排名为 的 排列方案数。e.g. prob。 -
有关上升子序列的个数的 DP :
为上升子序列长度为 ,末尾下标为 的 LIS 个数。e.g. prob。 -
yao qiu he wei yi ge shu de bei shu: f[i][j = 0 ~ m - 1] -> di yi ge yuan su, yu shu wei j.
贪心
- 爆搜优化成 DP 仍然不可行,考虑贪心。
暴力
-
Subtasks 多劳多得。
-
爆搜 + 剪枝。
-
的暴力往往可以变成 暴力。
式子计算
可以逐位考虑答案。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现