数塔求最大值

就是这样一个数塔

输入n,数塔有n行,第i行有i个数字,如

7

3 7

8 1 0

2 7 4 4

4 5 2 6 5

找出一条经过的数字和最长的路径的数字和。。。

比如吧,

1

2 3

可以走1-2  可以走1-3

走1-2得3 走1-3得4

所以最终输出为4

以下为代码

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n,i,j;
 5     int sco[100][100];
 6     scanf("%d",&n);
 7     for(i=0;i<n;i++) //n行循环n-1次
 8         for(j=0;j<=i;j++) //j也同样n-1
 9             scanf("%d",&sco[i][j]);
10     for(i=n-2;i>=0;i--) //从倒数第二行开始循环
11         for(j=0;j<=i;j++) //个数等于行数
12         {
13             sco[i+1][j]>sco[i+1][j+1]?sco[i][j]+=sco[i+1][j]:sco[i][j]+=sco[i+1][j+1];
14         }
15     printf("%d",sco[0][0]);
16     return 0;
17 }
时间: 2024-11-08 23:49:22

数塔求最大值的相关文章

HDU 2048 数塔(DP)

数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 20786    Accepted Submission(s): 12486 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少

(hdu step 3.2.7)免费馅饼(数塔变形:求所能接到馅饼的最大数)

题目: 免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1207 Accepted Submission(s): 508   Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米

Jsの数组练习-求一组数中的最大值和最小值,以及所在位置

要求:求一组数中的最大值和最小值,以及所在位置 代码实现: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv=&

数塔问题(DP算法)自底向上计算最大值

Input 输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数,且所有的整数均在区间[0,99]内. Output 对于每个测试实例,输出可能得到的最大和,每个实例的输出占一行. Sample Input 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 Sample Output 30 1 #include<iostream> 2 #incl

1002 数塔取数问题

1002 数塔取数问题 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 一个高度为N的由正整数组成的三角形,从上走到下,求经过的数字和的最大值. 每次只能走到下一层相邻的数上,例如从第3层的6向下走,只能走到第4层的2或9上. 5 8 4 3 6 9 7 2 9 5 例子中的最优方案是:5 + 8 + 6 + 9 = 28 Input 第1行:N,N为数塔的高度.(2 <= N <= 500) 第2 - N + 1行:每行包括1层数塔的数字,第2行1个数,第3

数塔取数问题

题目六.数塔取数问题 一个高度为N的由正整数组成的三角形,从上走到下,求经过的数字和的最大值. 每次只能走到下一层相邻的数上,例如从第3层的6向下走,只能走到第4层的2或9上. 5 8 4 3 6 9 7 2 9 5 例子中的最优方案是:5 + 8 + 6 + 9 = 28 Input 第1行:N,N为数塔的高度.(2 <= N <= 500) 第2 - N + 1行:每行包括1层数塔的数字,第2行1个数,第3行2个数......第k+1行k个数.数与数之间用空格分隔(0 <= A[i]

动态规划:数塔问题

动态规划问题我训练过一些题目,但是感觉自己掌握的还不是特别好! 下面以一道经典的动态规划题目说明动态规划算法的思想,文末会官方的给出对动态规划的文字叙述. 先看题目:如下图(图片来自百度图片)是一个数塔,从顶部出发在每一个节点可以选择向左或者向右走,一直走到底层,要求找出一条路径,使得路径上的数字之和最大. 思路分析: 这道题目如果使用贪婪算法不能保证找到真正的最大和. 在用动态规划考虑数塔问题时可以自顶向下的分析,自底向上的计算. 从顶点出发时到底向左走还是向右走应取决于是从左走能取到最大值还

[2016-05-09][51nod][1002 数塔取数问题]

时间:2016-05-09 19:25:06 星期一 题目编号:[2016-05-09][51nod][1002 数塔取数问题] 题目大意: 一个高度为N的由正整数组成的三角形,从上走到下,求经过的数字和的最大值.每次只能走到下一层相邻的数上,例如从第3层的6向下走,只能走到第4层的2或9上. 分析:动态规划 dp[i][j] 表示到 dp[i][j]时的最大值 dp[i][j] = max(dp[i-1][j],dp[i - 1][j - 1]) + a[i][j]; ans = max(dp

ACM 杭电HDU 2084 数塔 [解题报告]

数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 36261    Accepted Submission(s): 21659 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?