【简单DP】矩阵取数问题
来源:互联网 发布:淘宝超级店长使用教程 编辑:程序博客网 时间:2024/06/05 11:21
一个N*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,从左上走到右下,只能向下向右走,求能够获得的最大价值。
例如:3 * 3的方格。
1 3 3
2 1 3
2 2 1
能够获得的最大价值为:11。
Input
第1行:N,N为矩阵的大小。(2 <= N <= 500)第2 - N + 1行:每行N个数,中间用空格隔开,对应格子中奖励的价值。(1 <= N[i] <= 10000)
Output
输出能够获得的最大价值。
Input示例
31 3 32 1 32 2 1
Output示例
11
题中要求只能向下或者向右直到走到右下角;
那么移动状态有两种 (x+1 , y ) 和 (x,y+1);
且选择移动是 比较max( (x+1,y) , (x,y+1) ) ; 后加上 map[max] ;
AC代码:
#include <bits/stdc++.h>using namespace std ;int dp[510][510];int ma[510][510];int main() {int n ;while(scanf("%d",&n)!=EOF) {memset(dp,0,sizeof(dp));memset(ma,0,sizeof(ma));for(int i =1 ; i<=n ; i++) {for(int j = 1 ; j<=n ; j++) {cin>>ma[i][j];}}dp[1][1]=ma[1][1];for(int i = 1 ; i<=n ; i++) {for(int j = 1 ; j<=n ; j++) {dp[i][j]=max(dp[i-1][j],dp[i][j-1])+ma[i][j];}}cout<<dp[n][n]<<endl;}return 0 ;}
0 0
- 【简单DP】矩阵取数问题
- dp 矩阵取数问题
- 矩阵取数问题 DP
- dp--矩阵取数问题
- 51Nod 1083 矩阵取数问题(简单DP)
- 矩阵取数问题
- 矩阵取数问题
- 矩阵取数问题
- 矩阵取数问题
- 矩阵取数问题
- 51nod 1038 矩阵取数问题 (DP)
- dp-更难的矩阵取数问题
- 51nod 1084+1083 矩阵取数问题 dp
- 51nod 1084 矩阵取数问题 V2(dp)
- 【51Nod】1083 - 矩阵取数问题(dp)
- 【51Nod】-1083 矩阵取数问题(DP)
- 51Nod 1083 矩阵取数问题 (DP)
- 51nod 1084 矩阵取数问题 V2 dp
- Python及bs4、lxml、numpy模块包的安装
- sys用户登录出现错误提示 ORA-28009:connection as SYS should be as SYSDBA OR SYSOPER
- Android面试题精选
- Unable to open debugger port (localhost:8617): java.net.ConnectException "连接超时"
- wholeContainer.setMinimumHeight(wholeContainerHeight + buttonsContainerHeight);
- 【简单DP】矩阵取数问题
- Retrofit2.0使用详解
- Mysql常见的错误
- 深入理解Java回调函数
- 希尔排序
- IntentService的简单用法
- asp 后台获取 input 的值
- Dubbo基本原理机制
- 由二叉树的先序和中序结果求取后序结果