GG 数字三角形顺推。。。
来源:互联网 发布:淘宝店铺托管靠谱吗 编辑:程序博客网 时间:2024/09/21 13:28
2.1 为什么要用动态规划法解题
首先,看下面一个问题: 1458
【例题1】数字三角形问题。
7
3 8
8 1 0
2 7 7 4
5 5 2 6 5
示出了一个数字三角形宝塔。数字三角形中的数字为不超过100的正整数。现规定从最顶层走到最底层,每一步可沿左斜线向下或右斜线向下走。假设三角形行数≤100,编程求解从最顶层走到最底层的一条路径,使得沿着该路径所经过的数字的总和最大,输出最大值。输人数据:由文件输入数据,文件第一行是三角形的行数N。以后的N行分别是从最顶层到最底层的每一层中的数字。
如输入:
5
7
3 8
8 1 0
2 7 7 4
4 5 2 6 5
输出:30
var
i,j,k,n,m,max:longint;
a,f:array[-1..1000,-1..1000]of longint;
begin
readln(n);
for i:=1 to n do
for j:=1 to i do
read(a[i,j]);
f[1,1]:=a[1,1];
for i:=2 to n do
f[i,1]:=a[i,1]+f[i-1,1];
for i:=2 to n do
for j:=2 to i do
begin
if f[i-1,j]>a[i-1,j-1] then f[i,j]:=a[i,j]+f[i-1,j]
else f[i,j]:=a[i,j]+f[i-1,j-1];
end;
for i:=1 to n do
begin
if f[n,i]>max
then max:=f[n,i];
end;
writeln(max);
end.
顺推一维:
var
i,j,k,n,m,max:longint;
a:array[-1..1000,-1..1000]of longint;
f:array[-1..1000]of longint;
begin
readln(n);
for i:=1 to n do
for j:=1 to i do
read(a[i,j]);
f[1]:=a[1,1];
for i:=2 to n do
f[i]:=a[i,1]+f[i-1];
for i:=1 to n do
for j:=1 to i do
begin
if a[i-1,j]>a[i-1,j-1] then f[i]:=a[i-1,j-1]+f[i]
else f[i]:=a[i-1,j]+f[i];
end;
for i:=1 to n do
begin
if f[i]>max
then max:=f[i];
end;
writeln(max);
end.
- GG 数字三角形顺推。。。
- 数字三角形 Number Triangles (顺推)
- 数字三角形 Number Triangles(顺推)
- 数字三角形(顺推二维版)
- 递推 数字三角形
- 数字三角形(顺推2维,逆推,顺推1维)
- 数字三角形 Number Triangles (一维数组+顺推)
- 【转】数字三角形-递推-动态规划
- 数字三角形(逆推二维版)
- 数字三角形 Number Triangles (逆推)
- 基础DP-递推-类数字三角形。
- GG 逆推。
- 数字金字塔顺推
- 动态规划 问题之数字三角形(倒序递推)
- 数字三角形——递归、递推、记忆化搜索
- 蓝桥杯 算法训练 数字三角形 (递推)
- 数字三角形_递归_递推(动态规划)
- 【递推】洛谷 P1216 [USACO1.5]数字三角形 Number Triangles
- 3572: [Hnoi2014]世界树
- centos7 vscode c++ 扩展不生效处理
- 城市交通
- 3631: [JLOI2014]松鼠的新家
- MAC上SSDB使用指南
- GG 数字三角形顺推。。。
- 锁定 Linux 用户虚拟控制台的好命令–volck
- WebApi接口
- 3668: [Noi2014]起床困难综合症
- 文字持续滚动
- 3671: [Noi2014]随机数生成器
- u盘安装linux操作系统So Easy
- bzoj1059[ZJOI2007] 矩阵游戏
- 理解Window和WindowManager