快捷键

切换暗色模式 CtrlD
搜索 CtrlK
关闭弹窗 Esc
返回顶部 Ctrl
快捷键面板 Ctrl/
C++信息学奥赛打字闯关
首页 闯关训练 段位系统 题库中心
技术博客 新闻资讯
排行榜 信奥社区 成就殿堂 在线留言 AI助手
📑 文章目录

动态规划终极总结:从入门到 NOI 金牌所需的所有 DP 技巧

❤️ 1850 点赞
💬 0 评论
👁️ 58805 阅读
🔄 更新于 2026-09-11 05:12

本文整理了从 CSP-J 基础 DP 到 NOI 国集级别所需的全部动态规划技巧。

一、线性 DP

  • 最长上升子序列(LIS):O(n²) 和 O(n log n) 两种做法

  • 最长公共子序列(LCS)

  • 最大子段和(Kadane 算法)

  • 编辑距离(字符串 DP)


二、背包 DP
  • 01背包(逆序枚举)

  • 完全背包(正序枚举)

  • 多重背包(二进制拆分优化)

  • 分组背包

  • 二维费用背包

  • 依赖背包(树形背包基础)


三、区间 DP
  • 石子合并问题

  • 矩阵链乘

  • 括号序列 DP

  • 回文串相关 DP


四、树形 DP
  • 树的重心

  • 树的直径

  • 最大独立集

  • 树上背包(选课问题)

  • 换根 DP(二次扫描)


五、状态压缩 DP
  • TSP(旅行商问题)

  • 轮廓线 DP

  • 插头 DP(高级)


六、其他重要 DP
  • 数位 DP

  • 概率/期望 DP

  • 斜率优化 DP

  • 决策单调性优化

  • 四边形不等式优化


每种 DP 配有一道经典例题和完整代码模板。建议按顺序学习,每学完一种类型刷 3-5 道练习题巩固。

💬 评论 (0)

暂无评论,快来抢沙发吧~ 🛋️

在线

给管理员留言

每条留言老师都会认真阅读并回复

📚 课程咨询 🔧 技术求助 💡 建议反馈 🤝 合作联系

留言发送成功!

您的留言已送达管理员后台

追踪码(请保存以便查询回复)
------