序列处理问题

第一章 动态规划基础理论 #

1.1 动态规划基本概念 #

  • 最优子结构原理
  • 重叠子问题特性
  • 状态转移方程构建
  • 记忆化与制表法

1.2 动态规划解题框架 #

  • 状态定义方法
  • 状态转移设计
  • 边界条件处理
  • 结果提取策略

第二章 线性序列DP问题 #

2.1 最长递增子序列(LIS) #

  • 经典O(n²)解法
  • 贪心+二分O(nlogn)优化
  • 最长非递减子序列变体
  • 带权LIS问题

2.2 最长公共子序列(LCS) #

  • 标准LCS算法
  • 空间优化技巧
  • 多序列LCS问题
  • LCS应用场景

2.3 最大子数组和 #

  • Kadane算法原理
  • 环形数组最大和
  • 二维矩阵最大子矩阵和
  • 带长度限制的最大子数组和

第三章 区间序列DP问题 #

3.1 矩阵链乘法 #

  • 最优括号化问题
  • 区间DP状态设计
  • 最优解重构方法
  • 实际应用案例

3.2 石子合并问题 #

  • 线性石子合并
  • 环形石子合并
  • 最小代价与最大代价
  • 四边形不等式优化

3.3 括号匹配问题 #

  • 最长有效括号子串
  • 括号序列合法性判断
  • 生成所有有效括号组合
  • 带权括号匹配

第四章 字符串序列DP问题 #

4.1 编辑距离 #

  • Levenshtein距离计算
  • 操作代价自定义
  • 应用:拼写检查
  • 应用:DNA序列比对

4.2 正则表达式匹配 #

  • 通配符匹配问题
  • 正则表达式引擎实现
  • 回溯与DP结合
  • 性能优化技巧

4.3 回文子序列 #

  • 最长回文子序列
  • 回文子串计数
  • 分割回文串
  • 回文分割最小次数

第五章 背包序列DP问题 #

5.1 0-1背包问题 #

  • 基础0-1背包
  • 空间优化技巧
  • 恰好装满问题
  • 方案计数问题

5.2 完全背包问题 #

  • 物品无限取用
  • 状态转移优化
  • 组合与排列区别
  • 多重背包问题

5.3 分组背包问题 #

  • 物品分组约束
  • 依赖背包问题
  • 树形依赖背包
  • 二维费用背包

第六章 状态压缩DP #

6.1 位运算基础 #

  • 常用位操作技巧
  • 状态表示方法
  • 状态转移实现
  • 复杂度分析

6.2 旅行商问题(TSP) #

  • 经典TSP解法
  • 状态压缩实现
  • 哈密顿路径问题
  • 实际应用优化

6.3 棋盘覆盖问题 #

  • 多米诺骨牌覆盖
  • 轮廓线DP技术
  • 连通性状态表示
  • 插头DP简介

第七章 树形序列DP问题 #

7.1 树形DP基础 #

  • 子树问题处理
  • 树上背包问题
  • 直径与重心计算
  • 换根DP技术

7.2 二叉树DP问题 #

  • 二叉搜索树计数
  • 最优二叉搜索树
  • 二叉树最大路径和
  • 二叉树染色问题

第八章 序列分割与划分 #

8.1 序列分割问题 #

  • 最小分割代价
  • 最大分割收益
  • 带约束分割问题
  • 分割方案计数

8.2 整数划分问题 #

  • 划分数计算
  • 不同划分方式
  • 带限制划分
  • 生成函数应用

第九章 概率与期望DP #

9.1 概率DP基础 #

  • 期望线性性质
  • 马尔可夫过程
  • 状态转移概率
  • 终止条件处理

9.2 博弈论DP #

  • 必胜必败状态
  • Nim游戏变体
  • 公平博弈分析
  • SG函数应用

第十章 高级优化技巧 #

10.1 单调队列优化 #

  • 滑动窗口最值
  • 决策单调性
  • 应用:限制长度LIS
  • 应用:带限制子数组和

10.2 斜率优化 #

  • 凸壳维护技术
  • 决策点筛选
  • 应用:任务调度
  • 应用:资源分配

10.3 四边形不等式 #

  • 区间包含单调性
  • 四边形不等式性质
  • 决策单调性证明
  • 实际应用案例

第十一章 实际应用场景 #

11.1 生物信息学应用 #

  • DNA序列比对
  • 蛋白质结构预测
  • 基因识别问题
  • 进化树构建

11.2 自然语言处理 #

  • 机器翻译对齐
  • 文本相似度计算
  • 命名实体识别
  • 句法分析应用

11.3 金融与经济 #

  • 股票交易问题
  • 投资组合优化
  • 风险管理模型
  • 资源调度问题