51Nod 1002 数字三角形 Label:水水水 && 非学习区警告

一个高度为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] <= 10^5) 。

Output

输出最大值

Input示例

4
5
8 4
3 6 9
7 2 9 5

Output示例

28

代码

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstring>
 4 #include<cstdio>
 5 #define ll long long
 6 using namespace std;
 7 ll ans,N,a[1005][1005];
 8 int main(){
 9 //    freopen("01.in","r",stdin);
10
11     scanf("%d",&N);
12     for(ll i=1;i<=N;i++){
13         for(ll j=1;j<=i;j++){
14             scanf("%lld",&a[i][j]);
15         }
16     }
17
18     for(ll i=N;i>=1;i--){
19         for(ll j=1;j<=i;j++){
20             a[i][j]+=max(a[i+1][j],a[i+1][j+1]);
21         }
22     }
23
24
25     printf("%lld\n",a[1][1]);
26     return 0;
27 }
时间: 2024-10-29 19:08:34

51Nod 1002 数字三角形 Label:水水水 && 非学习区警告的相关文章

洛谷 P1029 最大公约数和最小公倍数问题 Label:Water&amp;&amp;非学习区警告

题目描述 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整数 2.要求P,Q以x0为最大公约数,以y0为最小公倍数. 试求:满足条件的所有可能的两个正整数的个数. 输入输出格式 输入格式: 二个正整数x0,y0 输出格式: 一个数,表示求出满足条件的P,Q的个数 输入输出样例 输入样例#1: 3 60 输出样例#1: 4 说明 P,Q有4种 3 60 15 12 12 15 60 3 代码

[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

【递归】数字三角形 简单dp

[递归]数字三角形 题目描述 对于大多数人来说,“我们是这么的正常,因此也就这么的平庸.”而天才总是与众不同的,所以当邪狼问修罗王:“老大,你蹲在那儿一动不动看了有半个小时了,蚂蚁有那么好看吗?” 修罗王是这样回答的:“我在思索人生的意义,你看这蚂蚁的面前有无数的道路选择,但它不知道选择哪条路可以到达目标,也不知道哪条路上有更多的食物,更不知道现在选择的道路对它以后的影响……” 如图所示,有一个层数为n(n≤1000)的数字三角形.现有一只蚂蚁从顶层开始向下走,每走下一级时,可向左下方向或右下方

P1044 - 数字三角形

P1044 - 数字三角形 From Admin    Normal (OI)总时限:10s    内存限制:128MB    代码长度限制:64KB 背景 Background 09年 USACO 11月月赛  铜牌第一道 描述 Description 示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大. 每一步可沿左斜线向下或右斜线向下走: 1<三角形行数<25: 三角形中的数字为整数<1000: 输入格式 InputFormat 第一行

数字三角形

数字三角形必须经过某一个点,使之走的路程和最大 输入格式: 第1行n,表示n行 (n<=25), 第2到n+1行为每个的权值,第n+2行为两个数x,y表示必须经过的点 输出格式: 输出最大值 样例1 输入: 2 1 1 1 1 1 输出: 2 //11 月 23 日 2015 #include <stdio.h> int num[26][26];//存储数字三角形的权值 int route[26][2];//记录临时最优路径 int n; int s1,s2;//以特殊点分为上半段和下半

蓝桥杯 算法训练 ALGO-124 数字三角形

算法训练 数字三角形 时间限制:1.0s   内存限制:256.0MB 问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ●三角形中的数字为整数0,1,-99: . (图3.1-1) 输入格式 文件中首先读到的是三角形的行数. 接下来描述整个三角形 输出格式 最大总和(整数) 样例输入 573 88 1 02 7 4 44 5 2 6 5 样例输出 3

4829 [DP]数字三角形升级版

4829 [DP]数字三角形升级版 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 从数字三角形的顶部(如图,第一行的5表示行数)到底部有很多条不同的路径.对于每条路径,把路径上面的数加起来可以得到一个和,且!!!!!!!!! ================================================================================== =================

各种数字三角形

数字三角形 经典例题,有记忆化搜索,正推,逆推三种方法 如果记录路径,可以开一个数组记录状态是由哪个子状态推出来的 #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<algorithm> using namespace std; const int maxn = 200; int n,dp[maxn][maxn],value[maxn][

hihoCoder 1037 数字三角形 最详细的解题报告

题目来源:hihoCoder 1037 数字三角形 解题思路:请好好看看 提示一.提示二.提示三 具体算法(java版,可以直接AC) import java.util.Scanner; public class Main { public static int[][] rewards; public static int[][] best; public static void main(String[] args) { Scanner scanner = new Scanner(System