当前位置: 首页 > news >正文

动态规划1

动态规划

参考视频

引入

img

A -> D找最短路径。

使用深度优先搜索遍历固然可行,但是效率较低,因为存在很多重复计算。
(!为什么不使用广度优先搜素,因为广度优先搜索不计算权重,得到的结果只是步数最少的结果,只可用于无权图)
使用贪心算法也不对,在图中可以找出反例:
如果使用贪心算法,那么应该选择:A -> B2 -> C3 -> D,但是实际的最短路径是:A -> B2 -> C2 -> D。

到底如何解决?

我们可以将问题倒过来,记\(d(x)\)为从D到x的最短路径长度,从与D点相邻的开始,那么就有:
\(d(C1) = 4,d(C2) = 2,d(C3) = 5\),继续下去,找这些点相邻的位置,就有:
\(d(B1) = 4+d(C2) = 6,d(B2) = 4+d(C2) = 6\),最后找到A点,发现:
\(d(A) = 3+d(B2) = 9\),所以最短路径是:A -> B2 -> C2 -> D,路长为9。
我们发现了规律,每一次做出选择的时候,假设当前的点是\(N\),与它相连的点为\(M_1,M_2,M_3,...,M_n\),那么:
\(d(N) = \min\{l(M_n) + d(M_n)\}\)①,其中\(l(M_n)\)表示从\(N\)\(M_n\)的路长。

在这样的方法中,我们做的每一步选择是根据前面的选择决定的,同时也影响了后面的选择,这就是动态规划。每一步选择叫做一次状态转移,像①式的式子叫做状态转移方程

img

数塔问题

img

我们可以使用二维数组存储这个数塔:
img
对照一些,对于一个其中的点\((x,y)\),它的相邻为\((x+1,y)\)\((x+1,y+1)\)
我们可以像上面一样写出状态转移方程,这次把路径和最大值记为\(s(x)\),当前位置的值为t:
\(s(x,y) = t(x,y) + \min\{s(x+1,y),s(x+1,y+1)\}\)
我们要找的结果就是\(s(1,1)\)

代码实现

#include <iostream>
using namespace std;int n;
int dp[102][102] = {0};
int map[102][102] = {0};int main(int argc, char const *argv[])
{cin >> n;for (int i = 1; i <= n; i++){for (int j = 1; j <= i; j++){cin >> map[i][j];}}// 构建dp数组for (int i = n; i >= 1; i--){for (int j = 1; j <= i; j++){dp[i][j] = max(dp[i + 1][j], dp[i + 1][j + 1]) + map[i][j];}}cout << dp[1][1];return 0;
}
http://www.jsqmd.com/news/772784/

相关文章:

  • 【26年6月六级】英语六级高频核心词汇1500个+历年真题PDF电子版
  • 2026年珠海本地出发纯玩跟团游旅行社5月最新排行:靠谱口碑与服务实测对比(珠海出发湖南/云南/四川/广西/甘肃/新疆/贵州) - 奋斗者888
  • 在Hermes Agent项目中接入Taotoken作为自定义模型提供商
  • SSH端口迁移安全实践:从原理到实战的完整指南
  • Scratch编程实战:手把手教你实现坦克大战的“穿墙”与“子弹反弹”效果(附完整源码)
  • 物联网卡充值/续费总失败?可能是你的ICCID号输错了!保姆级避坑指南
  • 基于Bash与jq构建OpenClaw CLI辅助工具:批量管理与自动化实践
  • ORB-SLAM3稠密建图实战:从关键帧插入到点云更新的完整线程协作流程
  • RAG技术全景解析:从基础范式到工程实践,构建高效检索增强生成系统
  • AISMM v1.2正式版发布倒计时72小时:2026奇点大会未公开议程泄露——这5项新增指标将重构AI采购标准
  • CubePDF Viewer(PDF浏览器)
  • 郑斯仁沉浸式演绎居家美学,每一帧都值得收藏
  • 告别Hackbar解析错误!用Burp Suite搞定复杂GET/POST请求的保姆级教程
  • Linux 系统下快速评测大样例
  • TotalDMIS2026图形化编程
  • 对比不同模型在 Taotoken 上的响应速度与 token 消耗直观差异
  • 别让‘隐形杀手’毁了你的板子:PCBA残留物检测与清洗实战指南(附IPC标准解读)
  • 从DLSS-G到FSR3:打破N卡独占,让AMD显卡也能享受帧生成技术
  • 阴阳师自动化脚本SmartOnmyoji:解放双手的终极游戏助手
  • OpenClaw PSAM:AI智能体并行任务编排与子代理管理实战
  • 从Claude Code源码泄露事件看AI CLI工具的五层架构与安全设计
  • 通过Telegram远程管理Codex AI编程助手:工作流无缝集成实践
  • Mi-Create终极指南:打造个性化智能手表表盘的完整教程
  • 小林学AI - 全网最全的免费AI教程网站
  • 快速原型开发中利用Taotoken低成本试验不同大模型效果
  • OpenModScan:完全免费的Modbus主站测试工具终极指南
  • 08-MLOps与工程落地——CI/CD for ML
  • CloudCone VPS 修改 root 密码后 SSH 密钥登录失效怎么办
  • PDF导航书签自动化工具:让无目录PDF焕发新生
  • 智能进化:浏览器资源嗅探工具的功能迭代全解析