数字三角形问题
来源:互联网 发布:linux设置定时重启 编辑:程序博客网 时间:2024/05/26 22:58
数字三角形问题
Time Limit: 1000MS Memory Limit: 65536KB
SubmitStatistic
Problem Description
给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。
对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径经过的数字和的最大值。
对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径经过的数字和的最大值。
Input
输入数据的第1行是数字三角形的行数n,1≤n≤100。接下来n行是数字三角形各行中的数字。所有数字在0..99之间。
Output
输出数据只有一个整数,表示计算出的最大值。
Example Input
573 88 1 02 7 4 44 5 2 6 5
Example Output
30
Hint
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
int main()
{
int a[123][123]={0};
int n, i, j;
scanf("%d", &n);
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
scanf("%d", &a[i][j]);
}
}
for(i=n-1;i>=1;i--)
{
for(j=i;j>=1;j--)
{
if(a[i+1][j+1]>a[i+1][j])
{
a[i][j]+=a[i+1][j+1];
}
else
{
a[i][j]+=a[i+1][j];
}
}
}
printf("%d\n", a[1][1]);
return 0;
}
#include <stdlib.h>
#include <memory.h>
int main()
{
int a[123][123]={0};
int n, i, j;
scanf("%d", &n);
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
scanf("%d", &a[i][j]);
}
}
for(i=n-1;i>=1;i--)
{
for(j=i;j>=1;j--)
{
if(a[i+1][j+1]>a[i+1][j])
{
a[i][j]+=a[i+1][j+1];
}
else
{
a[i][j]+=a[i+1][j];
}
}
}
printf("%d\n", a[1][1]);
return 0;
}
0 0
- 数字三角形问题
- 【dp】数字三角形问题
- 数字三角形问题求解
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- DP_数字三角形问题
- 【算法】数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- 数字三角形问题
- SDUToj1730数字三角形问题
- Discuz!论坛运营之增加创始人的方法
- CSU1004: Xi and Bo (并查集)
- 自组织映射网络
- url中的参数加密
- EM算法(生)
- 数字三角形问题
- linux copy_from/to_user原理
- bzoj 4085: [Sdoi2015]音质检测
- 云计算学习,OpenStack主要逻辑模块Nova的详细功能
- 前端小白训练营DAY3
- 【UGUI】屏幕区域点击检测
- 排序
- SATA盘和SAS盘区别
- 判断链表序列是否对称