dp算法之平安果路径问题c++
前文:https://www.cnblogs.com/ljy1227476113/p/9563101.html
在此基础上更新了可以看到行走路径的代码。
代码:
1 #include <iostream> 2 using namespace std; 3 int ivec[10001][10001]; 4 int dp[10001][10001]; 5 int que[10001]; 6 int main() 7 { 8 int m, n; 9 int i, j; 10 int tail = 1; 11 while (cin >> m >> n) 12 { 13 que[10001] = { 0 }; 14 for (i = 1; i <= m; i++) 15 { 16 for (j = 1; j <= n; j++) 17 { 18 cin >> ivec[i][j]; 19 } 20 } 21 que[0] = ivec[m][n]; 22 dp[1][1] = ivec[1][1]; 23 for (i = 2; i <= m; i++) 24 { 25 dp[i][1] = dp[i - 1][1]+ivec[i][1]; 26 } 27 for (j = 2; j <= n; j++) 28 { 29 dp[1][j] = dp[1][j - 1]+ivec[1][j]; 30 } 31 for (i = 2; i <= m; i++) 32 { 33 for (j = 2; j <= n; j++) 34 { 35 dp[i][j] = ((dp[i - 1][j] < dp[i][j - 1]) ? dp[i][j - 1] : dp[i - 1][j]) + ivec[i][j]; 36 } 37 } 38 i = m, j = n; 39 while(tail <= m + n - 2) 40 { 41 if (dp[i - 1][j] >= dp[i][j - 1]) 42 { 43 que[tail++] = ivec[i - 1][j]; 44 i--; 45 } 46 else 47 { 48 que[tail++] = ivec[i][j - 1]; 49 j--; 50 } 51 } 52 for (i = 1; i <= m; i++) 53 { 54 for (j = 1; j <= n; j++) 55 cout << dp[i][j] << " "; 56 cout << endl; 57 } 58 for (i = m + n - 2; i >= 0; i--) 59 cout << que[i] << " "; 60 cout << endl; 61 cout << dp[m][n] << endl; 62 } 63 return 0; 64 }
结果:
输入:
2 4
1 2 3 40
6 7 8 90
输出:
1 2 3 40 90
136
转载于:https://www.cnblogs.com/ljy1227476113/p/9877691.html
dp算法之平安果路径问题c++相关推荐
- Leetcode 64. 最小路径和 -- DP算法
Time: 20190831 题目描述 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入: ...
- dp笔记:关于DP算法和滚动数组优化的思考
从网上总结了一些dp的套路以及对滚动数组的一些思考,现记录如下,希望以后回顾此类算法时会有所帮助. 目录 1.DP算法经验 1.DP算法核心: 2.DP算法类别以及例题 例1:三步问题 例2:最小路径 ...
- 第十四周DP算法总结
这周自己主要再看DP算法的博客,感觉DP这一部分内容确实比之前的都要麻烦一些,最后攻克这一部分难题还是挺好的. 这周自己总结了一些题型,以及一些方法思路,最后再把动态规划和之前的分治和贪心做一下比较. ...
- 模式识别读书报告---关于DP算法的…
我喜欢玩星际争霸,当我操作我的部队用快捷键A进攻敌人时,部队就会自动避开障碍物attack目标.当时我就对为什么部队能自动选择最短的路进攻产生了兴趣,它是用什么算法实现的.而且当你的对手是电脑时,是用 ...
- 动态规划DP算法理解
1. DP算法定义: 每次决策依赖于当前状态,又随即引起状态的转移,多阶段最优化决策解决问题的过程就称为动态规划. 2. DP算法基本流程: 初始状态→│决策1│→│决策2│→-→│决策n│→结束状态 ...
- matlab蚁群算法 路径规划,基于蚁群算法的机器人路径规划MATLAB源码
基于蚁群算法的机器人路径规划MA TLAB源码 使用网格离散化的方法对带有障碍物的环境建模,使用邻接矩阵存储该环境,使得问题转化为蚁群算法寻找最短路径. function [ROUTES,PL,Tau ...
- vrp车辆路径问题 php,蚁群算法在车辆路径问题(VRP)中的应用.ppt
蚁群算法在车辆路径问题(VRP)中的应用 ◆割平面法(Cutting Planes Approach)[6] 割平面法求解VRP问题(A)的基本思想是,在求解相应的不含整数约束的VRP问题(B)上,增 ...
- MATLAB实战系列(六)-基于蚁群算法的三维路径规划算法思路浅析
首先以一个问题为例引入今天所讲的三维路径规划,在21 km * 21 km的一片海域中搜索从起点到终点,并且避开所有障碍物的路径.起点坐标为(1,10,800),终点坐标为(21,8,1200),示意 ...
- boost::geometry模块多边形DP算法简化示例
boost::geometry模块多边形DP算法简化示例 实现功能 C++实现代码 实现功能 boost::geometry模块多边形DP算法简化示例 C++实现代码 #include <boo ...
- dijkstra算法c++_Matlab 二维模拟退火算法最优路径(主程序)
这部分承接Dijkstra算法的基础之上,先算出单源最短路径(绿线), 之后把经过的每个虚线段分成1000份,它们的基准点分别是b1.b2等 随机产生一系列1000的数字排列成1*6的矩阵代入模拟退火 ...
最新文章
- mysql主从状态异常解决办法
- vector中erase函数
- 酷狗音乐怎样复制歌词到计算机,酷狗怎么复制歌词和歌曲到mp3上
- .NET Core 3.0及ASP.NET Core 3.0 前瞻
- Spring Data JDBC通用DAO实现–迄今为止最轻量的ORM
- java基础分享_一、java基础教程
- vue项目android,Android与Vue项目交互
- FTP连接时出现“227 Entering Passive Mode”的解决方法
- python判断nan格式_关于Python中Inf与Nan的判断问题详解
- 单片机ADC采样算法----限幅平均滤波法
- Openstack Swift 原理、架构与 API 介绍
- jquery的基本使用-入口函数
- Ubuntu安装MDK5
- 百亿节点,毫秒级延迟,携程金融基于nebula的大规模图应用实践
- (安卓免费抓包软件)安卓7以上版本微信内部无法抓包的完美解决方案
- 2. Instructions: Language of the computer
- 395. Longest Substring with At Least K Repeating Characters 1
- c语言printf格式限定符,c – 1字节有符号数的printf格式
- emoji表情mysql处理_Mysql Emoji表情处理
- MD5算法的编程实现