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

国庆集训day1~2笔记-动态规划

国庆集训 Day 1~2 笔记 - 动态规划

DP 时间复杂度计算:状态数 $\times$ 决策数 $\times$ 转移代价

序列型 DP

最长上升子序列

B3637 最长上升子序列 - 洛谷

  • $O(n^2)$ 解法:$f_i = \max{f_j + 1}$,其中 $a_j < a_i$
  • $O(n \log n)$ 解法:二分优化转移或树状数组

划分型 DP

一般状态:$f_{i,j}$ 表示前 $i$ 个数分 $j$ 组

数的划分

[P1025 NOIP2001 提高组] 数的划分 - 洛谷

题目:将 $N$ 分为 $K$ 个数,不考虑顺序(即 $1,2,1$ 与 $1,1,2$ 为同一种情况)

  • $f_{i,k,x}$ 表示 $i$ 分为 $k$ 个数,其中最大值为 $x$
  • $f_{i,k,x} += f_{i-x,k-1,y}$,其中 $y \in [1,x]$
  • 答案:$\text{ans} = \sum_{x=1}^N f_{N,K,x}$

优化(优化状态):考虑 $1$ 的存在

  • $f_{i,k} = f_{i-1,k-1} + f_{i-k,k}$

另解:DFS

抄书问题

P1281 书的复制 - 洛谷
P1182 数列分段 Section II - 洛谷
[P2884 USACO07MAR] Monthly Expense S - 洛谷

题目:$n$ 个数分为 $K$ 组,使各组的和的最大值最小

  • $f_{i,j}$ 表示前 $i$ 个分 $j$ 组的最小最大值
  • $s_i$ 为前缀和
  • 枚举上一段末尾 $k$:$f_{i,j} = \min{\max(f_{k,j-1}, s_i - s_k)}$

优化

  • 转化 for 循环顺序:最外层枚举 $j$,中间枚举 $i$,最内层枚举 $k$
  • 可降维为 $f_i$

另解:数据较大且不要求输出方案时,可使用二分答案

棋盘型 DP

(内容待补充)

区间 DP

一般状态:$f_{l,r}$ 表示一个区间

区间顺序:区间长度从小到大,左端点从小到大

状态转移:

  • 扩展(左右两个方向)
  • 合并(枚举断点)

石子合并

[P1880 NOI1995] 石子合并 - 洛谷

  • $f_{l,r}$ 表示合并完 $[l,r]$ 得到的最大分数
  • 枚举断点 $k$,其中 $k \in [l,r)$
  • $f_{l,r} = \max(f_{l,k} + f_{k+1,r}) + s_r - s_{l-1}$

对于环状问题:可拓展 2 倍,转换为链后 DP(本质是枚举起点

http://www.hskmm.com/?act=detail&tid=39731

相关文章:

  • P1679 神奇的四次方数
  • Minio外网访问内网上传的预签名url的方法以及报错原因
  • vscode解决中文乱码
  • 【ESP32 在线语音】星火大模型
  • RT-Thread 之互斥量使用
  • 20232419 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 语义文本理解 BERT - MKT
  • Rig 项目深度分析报告
  • FM-Fusion 利用rgbd相机 ram-GroundingDINO-sam 重建语义地图 - MKT
  • AI元人文构想系列:从战略能力到价值对话的文明之路
  • 事件日志查看Windows安装软件情况
  • RT-Thread之创建线程
  • cias_voice_plyer_handle.c 解析
  • 【CI130x 离在线】FreeRTOS的流缓冲(StreamBuffer)
  • 数据采集与融合技术作业1
  • RT-Thread Nano源码浅析
  • 关于SQLite - 世界上装机量最多的数据库
  • 《从 “被动听” 到 “主动学”:课堂听讲助力大学生思维成长》
  • 用AI批量生成产品视频!Python+Google Veo 3.1 API让电商转化率飙升
  • 模拟IIC与硬件IIIC哪个更常用?
  • 每日反思(2025_10_26)
  • 251019 NOIP 模拟赛 T2 | dp 及其优化、调整法最优解性质、数形结合
  • 小作业 14(2018 北京高考文科)
  • 10.23总结
  • 10.24总结
  • 第六章习题
  • 速通 花卉鉴赏 短文
  • Agent常见模式 - 智慧园区
  • 概率论测试
  • 2025.10.26总结