数字三角形问题
来源:互联网 发布:矩阵的奇异值定义 编辑:程序博客网 时间:2024/06/05 08:25
如有错误请批评指出,谢谢!
问题描述:给定一个由n行数字组成的数字三角形,如下图所示。试设计一个算法,计算出从三角形顶至底的一条路径,使得该路径经过的数字之和最大。
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
算法设计:对于给定由n行数字组成的数字三角形,计算出从三角形顶至底的路径经过的数字之和最大。
思路:用动态规划,核心代码:n=a[i][j]+a[i-1][j-1];m=a[i][j-1]+a[i-1][j-1];a[i-1][j-1]=exchange(n,m); 例如:以一二行为例 n=7+3=10;m=7+8=15;则a[0][0]=15
代码:
#include<iostream.h>
int a[20][20];
int i,j,k,sum=0;
int exchange(int &a,int &b)
{
return (a>b?a:b);
}
void main()
{
cout<<"输入n(三角形的行数)"<<endl;
cin>>k;
cout<<"输入数字三角形"<<endl;
for(i=0;i<k;i++)
for(j=0;j<=i;j++)
{
cin>>a[i][j];
}
for(i=k-1;i>=0;i--)
{
for(j=i;j>=0;j--)
{
int n,m;
n=a[i][j]+a[i-1][j-1];
m=a[i][j-1]+a[i-1][j-1];
a[i-1][j-1]=exchange(n,m);
}
}
cout<<a[0][0]<<endl;
}
0 0
- 数字三角形问题
- 【dp】数字三角形问题
- 数字三角形问题求解
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- DP_数字三角形问题
- 【算法】数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- SDUToj1730数字三角形问题
- VC获取屏幕分辨率及大小相关
- SpringMvc 深入讲解 三(springMvc整合spring)
- Floyd算法
- Spring框架的七大模块
- 联合查询SQL语句和翻页语句
- 数字三角形问题
- ios数组排序
- Java NIO原理解析
- VB.Net中日期类型的简单使用
- 特殊需求的sql
- 掌握elasticsearch 搜索引擎开发的一般阶段
- Git 常用命令 更新与提交
- 检测edittext中文字的输入状态,清空内容
- 生成验证码