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.
  • 相关阅读:
    线段树
    数学建模中的excel操作
    POJ 3666 Making the Grade
    POJ 1742 Coins
    CF 55D
    POJ 3280 Cheapest Palindrome
    牛客 处女座与复读机
    牛客 处女座的约会
    牛客 小a与星际探索
    POJ 2229 递推
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9500177.html
Copyright © 2011-2022 走看看