算法——C/动态规划

一、动态规划基础

什么是DP

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

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

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

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

分析步骤

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

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

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

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

数字三角

线性dp、

二维dp、

LIS、

LCS

相关推荐
s_w.h11 小时前
【 刷题 】双指针
算法
啥都想学点的研究生11 小时前
一篇文章讲清楚:K-Means聚类算法
算法·kmeans·聚类
白狐_79811 小时前
408 数据结构|KMP做题方法:next、nextval和高频易错点
数据结构·算法
月华路11 小时前
《模型不玄学》第20章 两种评估视角
人工智能·算法·机器学习
禹凕11 小时前
快速幂算法详解与实战
python·算法
xxwl58511 小时前
高斯消元法异或版
人工智能·算法·机器学习
sylviiiiiia11 小时前
leetcode hot 100
python·算法·leetcode
OPEN-F12 小时前
ROS2系列教程:Gazebo插件(关节控制/IMU/激光雷达)
c++·python·数码相机·算法·机器人
luj_176812 小时前
虚实交融中的真实人物塑造
c语言·开发语言·网络·经验分享·算法
haolin123.13 小时前
STL vector底层揭秘:从构造到迭代器失效
开发语言·c++·算法