1083 矩阵取数问题 分类: 51nod 2015-07-20 22:05 9人阅读 评
2015-12-31 08:40
357 查看
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
收藏
关注
一个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示例
3
1 3 3
2 1 3
2 2 1
Output示例
11
版权声明:本文为博主原创文章,未经博主允许不得转载。
收藏
关注
一个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示例
3
1 3 3
2 1 3
2 2 1
Output示例
11
#include<stdio.h> #include<string.h> #include<algorithm> #include<iostream> using namespace std; int main() { int n; int map[505][505]; while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { scanf("%d",&map[i][j]); } } int dp[505][505]; memset(dp,0,sizeof(dp)); 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])+map[i][j]; } } cout<<dp <<endl; } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- 1009 数字1的数量 分类: 51nod 2015-07-20 21:44 3人阅读 评
- 51nod 1091 线段的重叠 分类: 51nod 2015-07-18 21:49 7人阅读
- LoadRunner常用函数
- Request.url用法
- center
- iOS 开发如何获取当前的应用版本号
- relative 和 absolute
- 自定义View的XML报错问题
- 猿题库 iOS 客户端架构设计-唐巧
- window与linux文件传输工具
- 分享一个通过面向对象方式完成的拖拽功能
- 乱码问题
- 局域网网络不通,或者打开访问网络计算机网速变慢,软件打开超卡,设置下ip地址试试
- NSArry 常用方法...enumerateObjectsUsingBlock:
- 集中火力(3)
- ZOJ1655 Transport Goods(Floyd)
- 在 Linux 终端下看《星球大战》
- 学习笔记 ——深度学习和机器视觉
- Qt连接MySQL失败
- LoadRunner脚本分析