数字三角形问题

原创 2016年08月30日 15:32:17

方法一:

  递归:

  代码如下:

         int solve(int i,int j){

           return a[i][j]+(i==n?0:max(solve(i+1,j),solve(i+1,j+1)))      //效率太低,起原因在于重复计算

       }

方法2:

递推计算:

代码如下:

     int i,j;

  for(int j=1;j<=n;j++) d[n][j]=a[n][j];

 for(int i=n-1;i>+1;i++)

 for(int j=1;j<i;j++){

     d[i][j]=a[i][j]+max(d[i+1][j],d[i+1][j+1]);

}


方法3:

记忆化搜索:在递归的思想上加以优化,不会出现重复计算

代码如下:

memset(d,-1,sizeod(d));//将d[ ] 初始化为-1

int solve(int i;int j){

if(d[i][j]>=0) return d[i][j];   //已求

return d[i][j]=a[i][j]+max(d[i+1][j],d[i+1][j+1]);

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

数字三角形问题

  • 2012年02月21日 16:18
  • 1KB
  • 下载

动态规划—数字三角形问题

数字三角形问题 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 给定一个由n行数字组成的数字三角形如下图所示。试设计一个...

数字三角形问题 (动态规划初步)

问题描述: 有一个由非负整数组成的三角形,第一行只有一个数,除了最下行之外每个数的左下方和右下方各有一个数。    从第一行的数开始,每次可以往左下或右下走一格,直到走到最下行,把沿途经过的数全部...

DP经典应用(一)数字三角形问题

《算法竞赛入门》中动态规划的第一个例子就是经典的数字三角形问题。问题描述: 有一个由非负整数组成的三角形,每一行只有一个数,除了最下行之外每个数的左下外和右下方各有一个数。 1 ...

算法 数字三角形问题

题目给定一个由n行数字组成的数字三角形,设计算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大测试用例: 5(行数) 7 3 8 8 1 0 2 7 4 4 4 5 2 6...

(动归)数塔问题/数字三角形

问题描述:  给定一个有n行数字组成的数字三角形, 如下图所示. 试设计一个算法, 计算出从三角形的顶至底的一条路径, 使该路径经过的数字和最大.  #include void m...

Codevs 数字三角形 问题合集

1220 数字三角形 时间限制: 1 s    空间限制: 128000 KB    题目等级 : 黄金 Gold 题目描述 Description 如图所示的数字三...

三角形数字问题

题目:   给定一个数字三角形,找到从顶部到底部的最大路径和。每一步可以移动到下面一行的相邻数字上。输入第一行数字n是三角形的行数,接下来的n行是数字三角形的每一行,如:    5    7 ...

经典动态规划问题--数字三角形 POJ--1163

经典动态规划问题--数字三角形 POJ--1163
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数字三角形问题
举报原因:
原因补充:

(最多只允许输入30个字)