算法——C/动态规划

一、动态规划基础

什么是DP

DP(动态规划)全称Dynamic Programming,是运筹学的一个分支,是一种将复杂问题分解成很多重叠的子问题,并通进子问题的解得到整个问题的解的眼一种算法在动态规划中有一些概念:
状态:就是形如dp[ i ] [ j ]= val 的噉值,其中i、j为下标,也是用于描述、确定状态所需的变其中val 为状态值。
状态转移:状态与状态之间的转移关系,一般可以表示为一个数学表达式,转移方向决定了迭代或递归方向。
最终状态:也就是题目所求的状态,最后的答案。

分析步骤

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

2.确定状态转移方程,即从已知状态得到新状态的方法,并确保按照这个方向一定可以正确地得到最终状态。
根据状态转移的方向来决定使用迭代法还是递归法、记忆法

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

数字三角

线性dp、

二维dp、

LIS、

LCS

相关推荐

  1. 算法——C/动态规划

    2024-02-07 07:44:01       30 阅读
  2. 动态规划算法介绍

    2024-02-07 07:44:01       68 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-07 07:44:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-07 07:44:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-07 07:44:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-07 07:44:01       20 阅读

热门阅读

  1. openssl3.2 - update debian12‘s default openssl to openssl3.2

    2024-02-07 07:44:01       34 阅读
  2. Golang context 万字解析实现原理

    2024-02-07 07:44:01       32 阅读
  3. Qt::invokeMethod

    2024-02-07 07:44:01       36 阅读
  4. python的not

    2024-02-07 07:44:01       31 阅读
  5. sensor_msgs::PointCloud2 与sensor_msgs::PointCloud的区别

    2024-02-07 07:44:01       31 阅读
  6. 作业2.6

    作业2.6

    2024-02-07 07:44:01      26 阅读
  7. qt在pro文件中设置utf-8编码

    2024-02-07 07:44:01       34 阅读
  8. VUE 全局设置防重复点击

    2024-02-07 07:44:01       25 阅读
  9. c# 命令行帮助类

    2024-02-07 07:44:01       23 阅读
  10. 【机器学习】Ubuntu系统下显卡驱动卸载及重装

    2024-02-07 07:44:01       36 阅读