其他分享
首页 > 其他分享> > 【移动类DP】【强烈推荐】数字三角形系列

【移动类DP】【强烈推荐】数字三角形系列

作者:互联网

说在前面

虽然我也不知道为什么会有这个系列,但是这个系列真心不错,值得练练

建议食用使用方法:先自行刷题,再OJ上提交,实在不行看题解

ps:入门OJ部分题目需注册后才能显示。实在不行就用这里的题干做,再用题解里的标程和自己的一起跑一跑

T1:题目链接

Description

7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
(Figure 1)

Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed 
on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally 
down to the left or diagonally down to the right.
给出一个数字三角形,你从[1,1]开始出发,走到最后一行。每次站在一个点上时,可以向下走,或者向右下走。
将经过的数字加起来,希望其和最大。

Input

The first line contains one integer N: the number of rows in the triangle. 
The following N lines describe the data of the triangle. 
The number of rows in the triangle is > 1 but <= 100. 
The numbers in the triangle, all integers, are between 0 and 99.

Output

Your program is to write to standard output. The highest sum is written as an integer.

Sample Input

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

Sample Output

30

T1题解链接

T2:题目链接

Description

一个数字三角宝塔。
设数字三角形中的数字为绝对值不超过1000的整数。
现规定从最顶层走到最底层,每一步可沿向下或右斜线向下走。
求解从最顶层走到最底层的一条路径,使得沿着该路径所经过的数字的总和的绝对值最大,输出最大值

Input

输入数据的第1 行是数字三角形的行数n,1<=n<=1000。
接下来n行是数字三角形各行中的数字。所有数字都小于1000。

Output

程序运行结束时,将计算出的最大值输出。

Sample Input

4
1
3 2
4 10 1
4 3 2 20 

Sample Output

24

T2题解链接

T3:题目链接

Description

一个数字三角宝塔。
设数字三角形中的数字为绝对值不超过1000的整数。
小K从最顶层走到最底层,每一步可沿向下或右斜线向下走。
每走过一个节点他会把这个节点的数字加在自己计数器中。
另外他有一次机会,将他的计数器的数清零,他可以在任意时刻使用这次机会。
现在小K想知道他到达底层后,计数器中可能的最大的值.

Input

输入数据的第1 行是数字三角形的行数n,1<=n<=1000。
接下来n行是数字三角形各行中的数字。所有数字都小于1000。

Output

程序运行结束时,将计算出的最大值输出。

Sample Input

4
1
3 2
4 10 1
4 3 2 20 

Sample Output

24

T3题解链接

T4:题目链接

Description

一个数字三角宝塔。
设数字三角形中的数字为绝对值不超过1000的整数。
小K从最顶层走到最底层,每一步可沿左斜线向下或右斜线向下走。
每走过一个节点他会把这个节点的数字加在自己计数器中。
另外他有一次机会,将当前位置上的数字清零,他可以在任意时刻使用这次机会。
现在小K想知道他到达底层后,计数器中可能的最大的值.

Input

输入数据的第1 行是数字三角形的行数n,1<=n<=1000。
接下来n行是数字三角形各行中的数字。所有数字都小于1000。

Output

程序运行结束时,将计算出的最大值输出。

Sample Input

5
-1
-8 -7
3 3 -2
-3 -2 -5 -4
7 -3 -9 -10 -3

Sample Output

6

T4题解链接

T5:题目链接

Description

一个数字三角宝塔。
设数字三角形中的数字为绝对值不超过1000的整数。
小K从最顶层走到最底层,每一步可向下或右斜线向下走。
每走过一个节点他会把这个节点的数字加在自己计数器中。
另外他最多只能向下走k次。
现在小K想知道他到达底层后,计数器中可能的最大的值。

Input

输入数据的第1行是数字三角形的行数n和能够沿左斜线向下走的次数k,1<=n<=1000,0<=k<=100。
接下来n行是数字三角形各行中的数字。所有数字都小于1000。

Output

如题

Sample Input

4 2
1
3 2
40 10 1
100 3 2 20

Sample Output

47

T5题解链接

T6:题目链接

Description

一个数字三角宝塔。
设数字三角形中的数字为绝对值不超过1000的整数。
小K从最顶层走到最底层,每一步可向下或右斜线向下走。
每走过一个节点他会把这个节点的数字加在自己计数器中。
另外他最多只能沿向下走k次。
现在小K想知道他到达底层后,计数器中可能的最大的值。

Input

输入数据的第1行是数字三角形的行数n和能够沿左斜线向下走的次数k,1<=n<=1000,0<=k<=1000。
接下来n行是数字三角形各行中的数字。所有数字都小于1000。

Output

如题

Sample Input

4 2
1
3 2
40 10 1
100 3 2 20

Sample Output

47

这道题是T5的数据加强版,k的范围变成(0 <= k <= 1000)。T5题解中第二种方法足够做这道题了

标签:数字,行是,Sample,Input,Output,强烈推荐,三角形,DP
来源: https://blog.csdn.net/qq_43398760/article/details/90677925