HNU OJ题库 1001A数塔
来源:互联网 发布:安全知识网络竞赛答题 编辑:程序博客网 时间:2024/05/03 03:16
问题 A:数塔
时间限制:1 Sec 内存限制:128 MB
提交:1347 解决:640
[提交][状态][讨论版]
题目描述
给定一个数塔,如下图所示。在此数塔中,从顶部出发,在每一节点可以选择走左下或右下,一直走到底层。请找出一条路径,使路径上的数值和最大。
9
12
15
10
6
8
2
18
9
5
19
7
10
4
16
输入
输入时第一行一个整数n,表示该数塔的行数,其余n行表示该塔每行的数值
输出
输出包含两行,第一行为最大路径上的数值之和, 第二行n个数字为从上而下最大路径数值
样例输入
5
9
12 15
10 6 8
2 18 9 5
19 7 10 4 16
样例输出
59
9 12 10 18 10
代码如下:
#include <iostream>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int book[n+1][n+1];
int copy[n+1][n+1];
int pass[n+1][n+1];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
cin>>book[i][j];
copy[i][j]=book[i][j];
pass[i][j]=0;
}
}
for(int i=n-1;i>=1;i--)
{
for(int j=1;j<=i;j++)
if(copy[i+1][j]>copy[i+1][j+1])
{
copy[i][j]=copy[i][j]+copy[i+1][j];
}
else
{
copy[i][j]=copy[i][j]+copy[i+1][j+1];
pass[i][j]=1;
}
}
cout<<copy[1][1]<<endl;
int j=1;
for(int i=1;i<n;i++)
{
cout<<book[i][j]<<" ";
j=j+pass[i][j];
}
cout<<book[n][j]<<endl;
}
return 0;
}
- HNU OJ题库 1001A数塔
- HNU OJ题库 1003D相邻数对问题
- HNU OJ题库 1001B图像旋转问题
- HNU OJ题库 1004E画图
- HNU OJ题库 1006G日历问题
- HNU OJ题库 1007H生理周期
- HNU OJ题库 1008I约瑟夫问题
- HNU OJ题库 1002C数字排序问题
- HNU OJ题库1005F字符串匹配问题
- hnu oj The Queen's English
- hnu oj 13102 Super Shuttle题解
- OJ---数塔
- 杭电oj题库分类
- 华为OJ题库-字符串通配符
- HDU OJ-1084 数塔
- 北邮OJ-95-二进制数-12计院上机A
- 华为OJ题库_字符逆序
- 华为OJ题库_字符串加解密
- mvc +ef 框架实现上传excel表格并实现批量增加
- 【C++】第5章 循环和关系表达式 知识总结
- 数据处理过程——Data Processing
- 高级加密标准
- 1712: 数交点 正n边形内交点的个数
- HNU OJ题库 1001A数塔
- JS(7)
- 正则表达式
- 利用U盘安装ubuntu,UltraISO便捷启动选择syslinux 总是出现弹窗 “找到多余一个分区”
- 设计模式(九)——适配器模式
- NYOJ-ACM-分数加减法
- 【洛谷】P1966 火柴排队
- 安卓学习笔记(3)-更改APP图标&去除标题栏
- 关于那些解决安卓错误的方法