1.题目描述(蓝桥练习题)

上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和(路径上的每一步只可沿左斜线向下或右斜线向下走)。

输入描述

输入的第一行包含一个整数 N (1≤N≤100),表示三角形的行数。

下面的 N 行给出数字三角形。数字三角形上的数都是 0 至 99 之间的整数。

输出描述

输出一个整数,表示答案。

输入输出样例

示例

输入:

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

输出:

30

题目解析

先定义一个数组a[100][100],存储数字三角形;

求最大值,且只能沿左斜线向下或右斜线向下走,所以不能依次从上往下加最大值;所以换个思路,从下往上加,如图:

从最后一排开始,比较第一个元素和第二个元素,将最大的值加到上一排的第一个元素中,依次类推,直到加到第一排,输出数组中的a[1][1]即可。

代码如下

#include <stdio.h>int main()
{// 请在此输入您的代码int a[100][100];int n;scanf("%d",&n);int i,j;for(i=1;i<=n;i++){for(j=1;j<=i;j++){scanf("%d",&a[i][j]);}} //输入数组int max;for(i=n;i>1;i--){for(j=1;j<i;j++){if(a[i][j]>=a[i][j+1]) max=a[i][j];else max=a[i][j+1];a[i-1][j]+=max;}} //依次加最大值printf("%d",a[1][1]);return 0;
}

2.题目描述(2020省赛)

上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。

路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。

输入描述

输入的第一行包含一个整数 N (1≤N≤100),表示三角形的行数。

下面的 N 行给出数字三角形。数字三角形上的数都是 0 至 100 之间的整数。

输出描述

输出一个整数,表示答案。

输入输出样例

示例

输入:

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

输出:

27

题目分析:
同上,因为向左下走的次数与向右下走的次数相差不能超过 1,所以只能从最后一行最中间的一个或两个元素向上加,才能满足条件,所以将用不到的元素均设置为0,然后在向上加,最终结果依然存储在a[1][1]中。

代码如下 (蓝桥暂时没用通过,但DEV编译即输出均正确)

#include <stdio.h>
#include <stdlib.h>int main(int argc, char *argv[])
{// 请在此输入您的代码int a[100][100];int n;scanf("%d",&n);int i,j;for(i=1;i<=n;i++){for(j=1;j<=i;j++){scanf("%d",&a[i][j]);}} //输入数组int max;//设置0int hang=(n-1)/2,hang2=0;for(i=1;i<=hang;i++){ //i调整hang个数 for(j=1;j<=hang-i+1;j++){hang2=n-i+1;  //记录设置到第几行 a[hang2][j]=0;a[hang2][hang2-j+1]=0;}}for(i=n;i>1;i--){for(j=1;j<i;j++){if(a[i][j]>=a[i][j+1]) max=a[i][j];else max=a[i][j+1];a[i-1][j]+=max;}} //依次加最大值printf("%d",a[1][1]);return 0;
}

蓝桥杯大赛(大学B组)—— 数字三角形 (C语言)相关推荐

  1. 蓝桥杯Java大学C组近三年真题解析(三)——暴力、模拟题

    目录 第十届 求和 题目 题解 代码 矩形切割 题目 题解一 代码 代码 代码 题解二 代码 不同子串 题目 题解 代码 质数 题目 题解 代码 最大降雨量 题目 题解 代码 旋转 题目 题解 代码 ...

  2. 蓝桥杯Java大学C组近三年真题解析(二)——暴力、模拟题

    目录 第十一届 约数个数 题目 题解 代码 代码 寻找 2020 题目 题解 代码 代码 跑步锻炼 题目 题解 代码 代码 代码 灵活使用Excel 平面分割 题目 题解 代码 代码 七段码 题目 ​ ...

  3. 【蓝桥杯】【python】数字三角形

    问题描述 虽然我前后用了三种做法,但是我发现只有"优化思路_1"可以通过蓝桥杯官网中的测评,但是如果用c/c++的话,每个都通得过,足以可见python的效率之低(但耐不住人家好用 ...

  4. 蓝桥杯试题算法训练之数字三角形——Python满分解答

    数字三角形 问题描述 输入格式 样例输入 输出格式 样例输出 解题思路 代码实现 问题描述 下图展示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大. 每 ...

  5. 第十三届蓝桥杯Python 大学B组真题详解

    第十三届蓝桥杯Python B组真题详解 试题A 排列字母 试题B 寻找整数 试题C 纸张尺寸 试题D 位数排序 试题E 蜂巢 试题F 消除游戏 试题G 全排列的价值 试题H 技能升级 试题I 最长不 ...

  6. 蓝桥杯 c/c++真题 数字三角形

    题目描述 上图给出了一个数字三角形.从三角形的顶部到底部有很多条不同的路径.对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和. 路径上的每一步只能从一个数走到下一层和它最近的 ...

  7. 【蓝桥杯】算法训练,数字三角形

    问题描述 图示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ●三角形中的 ...

  8. 第十三届蓝桥杯大赛 python B组题解交流

    第一题 这题狗看了都要点点头,送分题,直接丢代码 #coding=utf-8 msg = input() print("".join(sorted(msg))) 运行完结果就出来了 ...

  9. 第十一届蓝桥杯大赛青少组 Python 真题 - 第二题

    题目如下: 代码如下: # 方法一 a = int(input

  10. 第十四届蓝桥杯C/C++b组冶炼金属(C语言版二分做法)

    [问题描述] 小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X.这个 炉子有一个称作转换率的属性 V,V 是一个正整数,这意味着消耗 V 个普通金 属 O 恰好可以冶炼出一个特殊金属 ...

最新文章

  1. 使用 Sticky-Kit 实现基于 jQuery 的元素固定效果
  2. 拖放操作和文件复制小功能
  3. python程序设计报告-Python程序设计实验一报告
  4. CListCtrl 使用技巧
  5. 计算机组成原理(哈工大刘宏伟)135讲(二)
  6. 201521123078 《Java程序设计》第6周学习总结
  7. php存储session更改,php如何修改SESSION的生存存储时间的实例代码_php实例
  8. 10.29 工作笔记 ndk编译C++,提示找不到头文件(ndk-build error: string: No such file or directory)...
  9. 大型企业网络系统传输负载测试及分析
  10. vs 2010调用matlab dll显示窗口核心代码
  11. 计算机485通讯原理图,485通讯接线图.pdf
  12. java BigDecimal.ROUND_UP和BigDecimal.ROUND_DOWN的用处
  13. 【Hadoop】HDFS文件写入与文件读取过程
  14. 【Tensorflow教程笔记】深度强化学习(DRL)
  15. StopWatch计时器
  16. 【splay】BZOJ 1152 3506:[cqoi2014]排序机械臂
  17. Vue百度地图标注点定位显示
  18. SSH跨平台终端工具tabby推荐
  19. tio-http-server 源码浅析(二)Http请求的处理HttpRequestHandler
  20. Python-混音、叠加音频、拼接音频及批处理

热门文章

  1. CF1385 D. a-Good String (分治+递归)
  2. 高德地图自定义定位按钮后搜索周边
  3. 获取高德POI(关键词搜索法 多边形搜索法 周边搜索法)综合运用 2022新版高德poi下载
  4. acwing.95.费解的开关
  5. 文献检索(学术搜索)
  6. python12306抢票_Python 版 12306 抢票神器
  7. 怎么做才能使校园网让多台电脑使用?
  8. 一周上手flutter
  9. 一个描述二氧化硅的两体势能BKS
  10. composer 升级/降级安装包