codevs 数字金字塔 1625

    xiaoxiao2021-03-26  39

    题目描述 Description 考虑在下面被显示的数字金字塔. 写一个程序来计算从最高点开始在底部任意处结束的路径经过数字的和的最大. 每一步可以走到下方的点也可以到达右下方的点. 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5  在上面的样例中,从 7 到 3 到 8 到 7 到 5 的路径产生了最大和:30

    输入描述 Input Description

    第一个行包含 R(1<= R<=1000) ,表示行的数目. 后面每行为这个数字金字塔特定行包含的整数. 所有的被供应的整数是非负的且不大于 100 输出描述 Output Description 单独的一行包含那个可能得到的最大的和. 样例输入 Sample Input 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 样例输出 Sample Output

    30

    代码:

      var   a,f:array[1..1010,1..1010]of longint;   n,i,j,ans:longint; function max(x,y:longint):longint; begin   if x>y then exit(x)          else exit(y); end; begin   readln(n);   for i:=1 to n do     begin       for j:=1 to i do         read(a[i,j]);       readln;     end;   for i:=n downto 1 do     for j:=1 to n do       f[i,j]:=max(a[i,j]+f[i+1,j],a[i,j]+f[i+1,j+1]);   writeln(f[1,1]); end.

    转载请注明原文地址: https://ju.6miu.com/read-658701.html

    最新回复(0)