算法——C/动态规划

一、动态规划基础

什么是DP

DP(动态规划)全称Dynamic Programming,是运筹学的一个分支,是一种将复杂问题分解成很多重叠的子问题,并通进子问题的解得到整个问题的解的眼一种算法在动态规划中有一些概念:

状态:就是形如dp i j = val 的噉值,其中i、j为下标,也是用于描述、确定状态所需的变其中val 为状态值。

状态转移:状态与状态之间的转移关系,一般可以表示为一个数学表达式,转移方向决定了迭代或递归方向。

最终状态:也就是题目所求的状态,最后的答案。

分析步骤

1.确定状态,一般为"到第i个为止xx为j(xx为k)的方案数/最小代价/最大价值",可以根据数据范围和复杂度来推理。

2.确定状态转移方程,即从已知状态得到新状态的方法,并确保按照这个方向一定可以正确地得到最终状态。

根据状态转移的方向来决定使用迭代法还是递归法、记忆法

3.确定最终状态并输出。

数字三角

线性dp、

二维dp、

LIS、

LCS

相关推荐
吞下星星的少年·-·2 分钟前
Div.2 CF edu195A题(数学,贪心)
数学·算法·贪心
罗湖老棍子8 分钟前
【例 2】牧场的安排(信息学奥赛一本通- P1593)三角形牧场(洛谷-P1284)
算法·动态规划·状压dp·状态压缩动态规划
HPtiger10 分钟前
交换类排序详解:冒泡排序与快速排序
数据结构·算法·排序算法
Cccp.1231 小时前
【leetcode】(十四)从暴力递归到动态规划
数据结构·算法·leetcode·动态规划
旖旎夜光2 小时前
LeetCode 215: 数组中的第K个最大元素 (快速排序) —— 题解
c++·学习·算法·leetcode·力控
技术胖2 小时前
奎爷巡演 AIGC 视频教程 文档
算法
德彪稳坐倒骑驴2 小时前
Leetcode力扣刷题记录与题解
算法·leetcode·职场和发展
lzhdim8 小时前
AI的分类
人工智能·算法·机器学习·分类·数据挖掘
凤凰院凶涛QAQ11 小时前
《Java版数据结构 & 集合类剖析》Map & Set & 反射:“从哈希碰撞到红黑树转换,反射帮你扒开 HashMap 的桶数组看个究竟”
java·数据结构·算法
w_zero_one13 小时前
算法--模拟
java·数据结构·算法