zoukankan      html  css  js  c++  java
  • 数字三角形:顺推法(一维数组)

    题意

    写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。


    分析

    f[j] 表示第i行第j个位置上的数到顶点的最大值。

    F[j]=max{a[j]+f[j-1],a[j]+f[j]}2<=j<i

    F[1]=a[1]+f[1]


    var
    n,i,j,w:longint;
    a,f:array[1..10000]of longint;
    begin
        readln(n);
        fillchar(f,sizeof(f),0);
        readln(a[1]);
        f[1]:=a[1];
        for i:=2 to n do
        begin
            for j:=1 to i do
            read(a[j]);
            for j:=i downto 2 do
            if f[j-1]<f[j] then f[j]:=a[j]+f[j] else f[j]:=a[j]+f[j-1];
            f[1]:=a[1]+f[1];
        end;
        w:=0;
        for i:=1 to n do
        if f[i]>w then w:=f[i];
        write(w);
    end.
  • 相关阅读:
    工厂增强
    面试题
    SpringBean生命周期及作用域
    字符串
    带参数方法实例
    带参数方法
    人机猜拳
    类的无参方法
    类和对象实例2
    类和对象实例1
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9500177.html
Copyright © 2011-2022 走看看