- 1
- 0
- 约8.65千字
- 约 35页
- 2016-08-21 发布于河南
- 举报
Dynamic Programming-FOXLIU
动态规划(Dynamic Programming) 西安电子科技大学ACM-TEAM 刘爽 重点回顾 动态规划算法设计的 2 点要求 最优化原理 一个最优化策略的子策略总是最优的 无后效性 每个状态都是过去历史的一个完整总结 算法核心:保存求解过的重叠子问题,空间换时间 可解决问题 多阶段决策过程最优化问题(这是DP产生的原因) 最大值 最小值 统计类问题(与组合数学和概率论结合较紧密) 满足条件的[值/序列/方案]有多少个 求出按照字典序的第k个[值/序列/方案] 确定所给[值/序列/方案]是字典序中的第几个 在给定条件下满足要求的概率是多少 关键区别:求解目标是否需要比较大小 多阶段决策过程最优化问题 背包问题(类型很多,可参考《背包九讲》) 方格取数(三角形取数) 最长上升子序列(LIS) 最长公共子序列(LCS) 相邻石子归并 最大子段和 最大 2 子段和 最大 m (m2) 子段和 最大子矩阵和 具体问题相关类型 压缩状态DP(PKU 1038,PKU 1185等) 与字符串相结合(PKU 1093,PKU 3395等) …… 例:相邻石子归并(NUAA1086) 题目简介 描述:地上摆有一排石子,一共 N (1 = N = 200) 堆,将任意相邻的 2 堆石子合并所消耗的 HP 就是这 2 堆石子数的和,求将这 N 堆石子合并成 1 堆最少消耗多少
原创力文档

文档评论(0)