说在前面
虽然我也不知道为什么会有这个系列,但是这个系列真心不错,值得练练
建议食用使用方法:先自行刷题,再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
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
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
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
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
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题解中第二种方法足够做这道题了