二维数组(动态规划)
简要描述:
给定一个M行N列的矩阵(M*N个格子),每个格子中放着一定数量的平安果。
你从左上角的各自开始,只能向下或者向右走,目的地是右下角的格子。
每走过一个格子,就把格子上的平安果都收集起来。求你最多能收集到多少平安果。
注意:当经过一个格子时,需要一次性把格子里的平安果都拿走。
(1<=N,M<=50);每个格子里的平安果数量是0到1000(包含0和1000)。
输入描述:
输入包含两部分:
第一行M, N
接下来M行,包含N个平安果数量
输出描述:
一个整数
最多拿走的平安果的数量
示例:
输入
2 4
1 2 3 40
6 7 8 90
输出
136
思路:动态规划
动态方程:当前位置能够获得的最大苹果数=max(从上面走能够获得最大苹果+从左边走能获得最大苹果)
dp(0,0)=app[0][0]
例:
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>using namespace std;int dp(int m, int n, int apple[][50])
{if (m == 0 && n == 0)return apple[0][0];else if (m == 0){return apple[m][n] + dp(m, n - 1, apple);}else if (n == 0){return apple[m][n] + dp(m - 1, n, apple);}return max(apple[m][n] + dp(m,n-1,apple),apple[m][n] + dp(m-1,n,apple));
}int main(void)
{int m, n;cin >> m >> n;int apple[50][50];for (int i = 0; i < m;++i)for (int j = 0; j < n; ++j){int tmp;cin >> tmp; apple[i][j] = tmp;}cout << dp(1, 3, apple);
}
二维数组(动态规划)相关推荐
- hdu1176 免费馅饼 动态规划 二维数组实现
免费馅饼 Time Limit: 1000MS Memory Limit: 32768KB Submit Statistic Discuss Problem Description 都说天上不会掉馅饼 ...
- 问题 A: 【动态规划】采药_二维数组_一维数组
问题 A: [动态规划]采药 时间限制: 1 Sec 内存限制: 64 MB 提交: 35 解决: 15 [提交][状态][讨论版] 题目描述 山洞里有一些不同的草药,采每一株都需要一些时间,每一 ...
- 动态规划 -- 二维数组中左上到右下的最短路径和。
目录 问题: 应用场景: 分析: C++实现 问题: 给定一个二维数组map[4][4] ={{1,3,5,9},{8,1,3,4},{5,0,6,1},{8,8,4,0}}.求从左上角到右下角的最短 ...
- 01背包问题动态规划(二维数组)
01背包问题动态规划(二维数组) 问题描述 一个旅行者有一个最多能装 M 公斤的背包,现在有 n 件物品,它们的重量分别是W1,W2,-,Wn,它们的价值分别为C1,C2,-,Cn,求旅行者能获得 ...
- 建立二维数组_二维数组的 DP
寻找不同路径和 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标 ...
- 背包(二维数组版和一维数组版)
一:前言 这是动态规划的经典题型,那么我们也是 按照动态规划五步走的策略分析的 确定dp数组的含义以及下标的含义 确定dp数组的递推公式 确定dp数组的初始化 确定dp数组的遍历顺序 举例验证(如果不 ...
- 二维数组联通子数组和最大
题目要求: 返回一个二维整数数组中最大联通子数组的和. 输入一个二维整形数组,数组里有正数也有负数. 文件输出. 思路:和之前的动态规划相识,把二维数组转换为一维数组,先求每一个列的子数组和最大,最后 ...
- map的key可以试一个数组吗?_二维数组的 DP
寻找不同路径和 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标 ...
- 二维数组的花式遍历技巧盘点
学算法认准 labuladong 后台回复 进群 进刷题 读完本文,可以去力扣解决如下题目: 48. 旋转图像(中等) 54. 螺旋矩阵(中等) 59. 螺旋矩阵 II(中等) 有不少读者说,看过很多 ...
- 经典算法题型(二):二维数组(平面地图)的递归操作
一.基本概念 1.在算法中有一类题型经常出现,通常题目给出一个二维的数组,让你求出有多少条路径?有多少个岛屿? 甚至有些题目给出二维字符数组,让你寻找是否存在某个单词. 这些问题都涉及到递归回溯的相关 ...
最新文章
- Error:Execution failed for task ':app:mergeDebugResources'. Error: java.lang.RuntimeException: Som
- python入门教程非常详细-Python编程入门教程:从入门到高级,非常详细
- mysql总是出现-_mysql 总是莫名其妙的关闭:报错
-问答-阿里云开发者社区-阿里云...
- (转载)IT未来发展五大趋势
- 「后端小伙伴来学前端了」Vue-Router 路由各种跳转、传参、小知识
- 6.非关系型数据库(Nosql)之mongodb:集群(主从复制)
- SOA和微服务架构的区别?
- 【Antlr】cannot create implicit token for string literal in non-combined grammar xx
- scala学习-Description	Resource	Path	Location	Type value toDF is not a member of org.apache.spark.rdd.R
- 个推透传工作笔记001---个推后台配置
- 作词家下岗系列:教你用 RNN 算法做一个写词软件
- 分享C#实现XML和实体序列化和反序列化的代码
- .Net: C#中的委托(Delegate)和事件(Event)
- 提高openfire最大连接数
- WPF UI 框架 收集
- jQuery插件使用-瀑布流
- 用Python从大到小排序
- Unity中Destory()、DestoryImmediate()和GameObject==null问题
- Android-四大天王
- 3000万存款的陈奕迅哭穷,真不是无病呻吟!
热门文章
- 蓝桥杯:填字母游戏(第八届决赛javaB第五题)——博弈+递归+回溯
- HDU:2055 An easy problem
- 《领导力21法则》读书感悟
- c语言为什么不能自动free,求大神帮忙看看 为什么cfree没有报错但是就是运行不了...
- CFree5构建中止问题
- 广州市二手房源数据采集和可视化分析(链家二手房)Python
- 什么是广域网(WAN)?
- iOS中视图切换的四种方式
- 什么是模式、什么是模式识别、模式识别的方法、过程
- 使用ffpemg无损快速从视频中提取音频的操作教程(记录笔记超详细)