C++动态规划算法之数字金字塔【USACO TRAINING】:一道经典的数塔问题
来源:互联网 发布:linux sleep 单位 编辑:程序博客网 时间:2024/06/05 00:32
数字金字塔
题目描述
考虑在下面被显示的数字金字塔。 写一个程序来计算从最高点开始在底部任意处结束的路径经过数字的和的最大。每一步可以走到左下方的点也可以到达右下方的点。
在上面的样例中, 从7到3到8到7到5的路径产生了最大和:30
输入
第1行:1个整数R(1<= R<=1000),表示行的数目。
接下来共R行,第i行有i个整数。所有的数均非负的且不大于100。
输出
第1行:可以得到的最大的和。
样例输入
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
样例输出
30
来源
USACO TRAINING
分析
下面是每个点到底层可以得到的最大数值:
30
23 21
20 13 10
7 12 10 10
4 5 2 6 5
代码实现
#include<cstdio>#include<algorithm>using namespace std;int r,a[1002][1002],F[1002][1002];main(){scanf("%d",&r);for(int i=1;i<=r;i++)for(int j=1;j<=i;j++){scanf("%d",&a[i][j]);F[i][j]=a[i][j];}for(int i=r-1;i>0;i--)for(int j=1;j<=i;j++)F[i][j]+=max(F[i+1][j],F[i+1][j+1]);printf("%d",F[1][1]);}
阅读全文
1 1
- C++动态规划算法之数字金字塔【USACO TRAINING】:一道经典的数塔问题
- 【USACO TRAINING】数字金字塔
- 动态规划快速入门 之 经典的数塔问题
- 算法之动态规划-->>数塔问题
- 动态规划算法之数塔问题
- C++动态规划算法之数字三角形系列问题:数塔及其变种
- 【USACO TRAINING】数字金字塔(DP)
- 数塔问题--经典的动态规划问题
- dp 数塔 经典动态规划问题
- HDOJ2084 数塔(经典的动态规划问题)
- 数字金字塔(动态规划)
- 数字金字塔(动态规划)
- 数字金字塔(动态规划)
- 数字金字塔(动态规划)
- 最好懂得贪心算法+动态规划之数塔问题
- 数据结构与算法,c语言实现,经典算法记录之欧几里得算法,裴波那切数和动态规划。
- 数塔问题,简单的动态规划算法
- 经典算法之-----动态规划
- UVA
- 面试易错题整理(一)
- MD5工具类封装
- MFC List Control 控件添加单元格编辑和单元格下拉列表项
- 自定义view四个构造函数代表什么
- C++动态规划算法之数字金字塔【USACO TRAINING】:一道经典的数塔问题
- <模板>计算SG函数-(hdu 1848 Fibonacci again and again)
- HDU 1402 A * B Problem Plus (FFT求高精度乘法)
- mark标记输入流中的当前位置,以便使用reset方法复制到该标记的位置 reset将当前位置复位为上次调用mark方法标记的位置
- 169.Majority Element
- 【Linux】ubuntu首次给root用户设置密码
- [RK3288][Android6.0] 调试笔记 --- ComponentName的使用
- zzuli2174
- android 关于封装tabbar,任意修改样式