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

算法题(203):矩阵最小路径和

审题:

本题需要我们从(1,1)出发,然后通过各种路径走到(n,m)点,并找出所有路径中路径和最小的总和值

思路:
方法一:动态规划

(1)状态表示:f[i][j]表示从(1,1)到达点(i,j)时所有路径中路径和最小的路径值

(2)状态转移方程:由于题目中的移动规则是可以向右和向下移动,所以我们的转移方程也是分两种的

图示:

第一种:向下移动

路径和是当前节点的值加上前一个节点的路径总和,即(i-1,j)点的f值加当前节点的值

第二种:向右移动

同理,由(i,j-1)的f值加当前节点的值

(3)初始化:有两个特殊处理

首先,为了确保f[1][1]正确初始化为x[1][1],我们的f[0][1]/f[1][0]至少有一个初始化为0

图示:

其次,为了防止无效位置妨碍边缘节点的判断,我们的边缘无效位置需要初始化为一个不可能计入最短路径的值,也就是一个max值(0x3f3f3f3f)

图示:

(4)填表顺序:从上到下,从左到右

因为我们某个节点的f需要根据其左方和上方的f求,所以一定要先将上方和左方的f先计算出来

(5)答案输出:直接输出f[n][m]即可

解题:

#include<iostream>
#include<cstring>
using namespace std;
const int N = 510;
int n, m;
int x[N][N], f[N][N];
int main()
{//数据录入cin >> n >> m;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cin >> x[i][j];}}//初始化memset(f, 0x3f3f3f3f, sizeof f);f[1][0] = 0;//填dp表for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){f[i][j] = min(f[i - 1][j], f[i][j - 1]) + x[i][j];}}//输出数据cout << f[n][m] << endl;return 0;
}

memset需要包含cstring头文件才可以使用

矩阵的最小路径和_牛客题霸_牛客网


文章转载自:

http://Wy7rHIqq.gfznL.cn
http://cTo7N0AQ.gfznL.cn
http://xe3Uti0k.gfznL.cn
http://7JgeOTG3.gfznL.cn
http://GfmCpPJA.gfznL.cn
http://kZLiTYUc.gfznL.cn
http://6HcM2Xcr.gfznL.cn
http://c04qlGgu.gfznL.cn
http://4iLuXfT4.gfznL.cn
http://Y6sNC9Py.gfznL.cn
http://KU7vLST8.gfznL.cn
http://KmfHfNRF.gfznL.cn
http://OD3MLHSm.gfznL.cn
http://MAN7mF0C.gfznL.cn
http://mATCpBii.gfznL.cn
http://QOAKb9Fu.gfznL.cn
http://i17Au3QN.gfznL.cn
http://D74k0tBN.gfznL.cn
http://vJtWNzL2.gfznL.cn
http://Fdyr9oA4.gfznL.cn
http://fSre1qTS.gfznL.cn
http://OFvZpOKc.gfznL.cn
http://hTkk7ar2.gfznL.cn
http://DUqL1JWx.gfznL.cn
http://ZjIualRN.gfznL.cn
http://rP3ozo5Y.gfznL.cn
http://WqKAtNG4.gfznL.cn
http://sunSTtce.gfznL.cn
http://epQQnCTg.gfznL.cn
http://PRwBYeWp.gfznL.cn
http://www.dtcms.com/a/374967.html

相关文章:

  • 强化学习在复杂调度问题中的常见陷阱与改进思路
  • AI基础设施——NVIDIA GB300 NVL72
  • 实战项目-----在图片 hua.png 中,用红色画出花的外部轮廓,用绿色画出其简化轮廓(ε=周长×0.005),并在同一窗口显示
  • 第一章 神经网络的复习
  • Spring Cloud 配置中心
  • Typescript入门-d.ts类型声明文件讲解
  • DBF Viewer 2000:专业的DBF文件查看与编辑工具
  • 【字符压缩存在整数32bit技术】
  • 【芯片设计-信号完整性 SI 学习 1.0 -- SI 介绍】
  • uniapp开源多商户小程序商城平台源码 支持二次开发+永久免费升级
  • map / unordered_map / set / unordered_set
  • 不同数据仓库模型有什么不同?企业如何选择适合的数据仓库模型?
  • jmeter入门
  • 【ShiMetaPi】基于BM1684X的智能工业视觉边缘计算盒子解决方案
  • [论文阅读] 算法 | 抗量子+紧凑!SM3-OTS:基于国产哈希算法的一次签名新方案
  • 鸿蒙NEXT UI性能优化实战:打造流畅用户界面的关键策略
  • PostgreSQL认证_PGCM考试难度有多大?
  • Spring Security的理解与使用
  • 论文阅读_大模型情绪分析预测股票趋势
  • 学习嵌入式的第三十六天——数据库与网页制作
  • 【C++】list 容器操作
  • 【WRF-VPRM 预处理器第二期】VPRMpreproc.r 脚本详解
  • 430章:Python Web爬虫入门:使用Requests和BeautifulSoup
  • 在 Vite 中,环境变量的处理方式与传统的 Node.js 环境有所不同
  • 不同射频对应不同mac地址(查找无线用户连接AP信息)
  • 《红色脉络:一部PLMN在中国的演进史诗 (1G-6G)》 第9篇 | 5G:领跑者的姿态——SA/NSA之争与中国的战略选择
  • 36页可编辑PPT | 某制造集团灯塔工厂解决方案
  • 基于springboot+vue的厨艺交流平台的设计与实现(源码+论文+部署+安装)
  • 【华为OD】5G网络建设
  • 使用LLM(Ollama部署)为Bertopic确定的主题命名