您的位置:首页 > 其它

USACO 1.5 数字金字塔 Number Triangles

2017-01-12 15:07 281 查看
题目描述观察下面的数字金字塔。写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。7 3 8 8 1 02 7 4 44 5 2 6 5在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大输入输出格式输入格式:第一个行包含 R(1<= R<=1000) ,表示行的数目。后面每行为这个数字金字塔特定行包含的整数。所有的被供应的整数是非负的且不大于100。输出格式:单独的一行,包含那个可能得到的最大的和。输入输出样例输入样例#1:573 88 1 02 7 4 44 5 2 6 5输出样例#1:30说明题目翻译来自NOCOW。USACO Training Section 1.5递推:1.倒推。2.每次从当前点(i,j)连接的(i+1,j)(i+1,j+1)中找一个最大值加入(i,j)。a[i,j]:=a[i,j]+max(a[i+1,j],a[i+1,j+1]);备注:顺推也可。
var
a:Array [0..1001,0..1001] of longint;
i,j,n:longint;
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-1 downto 1 do
for j:=1 to i do
if a[i+1,j]>a[i+1,j+1] then a[i,j]:=a[i,j]+a[i+1,j]
else a[i,j]:=a[i,j]+a[i+1,j+1];
writeln(a[1,1]);
end.

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: