数字三角形

  • 问题描述
  • 输入格式
    • 样例输入
  • 输出格式
    • 样例输出
  • 解题思路
  • 代码实现

问题描述

下图展示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大。

  • 每一步可沿左斜线向下或右斜线向下走;
  • 1<三角形行数≤100;
  • 三角形中的数字为整数0,1,…99;

输入格式

文件中首先读到的是三角形的行数。

接下来描述整个三角形

样例输入

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

输出格式

最大总和(整数)

样例输出

30

解题思路

这道题的题目说的是从顶至底的某一条路径,我最先想到的就是把一条路径都遍历一遍,但是,这么做的缺陷就是计算量太大了,虽然思路确实简单,但蓝桥杯不仅要求准确度,它还有资源限制,因此这样低效的方法不到万不得已的时候,尽量不要使用。

再来想想,还有什么解题的策略。

再读一遍题目,求的是一个最大总和,其实就是最优解,再看一下输入,其实有点像二叉树,从上往下,分支会越来越多,问题的复杂度会越来越大。

那如果从下往上考虑呢?试想一下,这一个大三角形完全可以分成许多小三角形(只有3个节点的二叉树),这样一来,复杂的问题一下子就变得简单了,我们先处理这一个个的子问题,然后通过底层的子问题向上求解更大的问题。当求解大问题的时候,我们已经可以确保该问题依赖的所有子问题都已经计算过了,那么我们就无需检查子问题是否已经求解,而是直接从缓存中取出子问题的解。

想到这里,我们用代码来实现一下

代码实现

def DigitalTriangle():n = int(input())arrs = []for item in range(n):arr = list(map(int,input().split()))arrs.append(arr)# print(arrs)for item in reversed(range(0, n)):for iter in range(item):arrs[item-1][iter] += max(arrs[item][iter], arrs[item][iter+1])print(arrs[0][0])DigitalTriangle()

外循环,从三角形的底部向上遍历;内循环,从每一行的最左端进行遍历。

蓝桥杯试题算法训练之数字三角形——Python满分解答相关推荐

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

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

  2. 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解

    题目: 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的 ...

  3. 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解 - 未完善

    题目: 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的 ...

  4. 蓝桥杯 试题 算法训练 筛选号码 Java

    蓝桥杯 试题 算法训练 筛选号码Java 算法训练 筛选号码 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 有n个人围成一圈,顺序排号(编号为1到n).从第1个人开始报数(从1到3 ...

  5. 蓝桥杯 试题 算法训练 无聊的逗

    蓝桥杯 试题 算法训练 无聊的逗 问题描述 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘 ...

  6. 蓝桥杯试题 算法训练 绘制地图

    蓝桥杯试题 算法训练 绘制地图 问题描述 最近,WYF正准备参观他的点卡工厂.WYF集团的经理氰垃圾需要帮助WYF设计参"观"路线.现在,氰垃圾知道一下几件事情: 1.WYF的点卡 ...

  7. 蓝桥杯试题 算法训练 幂方分解

    试题 算法训练 幂方分解 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 任何一个正整数都可以用2的幂次方表示.例如: 137=27+23+20 同时约定方次用括号来表示,即ab 可 ...

  8. 蓝桥杯试题 算法训练 Have You Ever Heard About the Word?

    试题 算法训练 Have You Ever Heard About the Word? 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 一个字符串的子串是该字符串的一段连续子序列,如 ...

  9. 蓝桥杯试题 算法训练 印章

    试题 算法训练 印章 C/C++ 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 ...

最新文章

  1. 使用 Google Calendar 免费自动发送手机短信、Email 的方法
  2. python stdout stderr 一起输出_Python在保留顺序的同时分别从子进程stdout和stderr读取...
  3. Element UI——滚动条组件(ElScrollBar)修改.el-scrollbar__wrap和el-scrollbar__view的CSS属性
  4. 设计友好的错误信息页面
  5. C++ STL : 模拟实现STL中的vector类
  6. FM算法python实现
  7. 洛谷——P2068 统计和
  8. 顺德职业技术学院计算机专业录取线,顺德职业技术学院录取分数线2021是多少分(附历年录取分数线)...
  9. C/C++创建服务器和客户端的demo
  10. 斗鱼弹幕服务器未响应,斗鱼看不到弹幕的解决方法步骤
  11. 通过PXE网络启动WinPE的方法
  12. 软件测试项目实战经验附视频以及源码【商城项目,app项目,电商项目,银行项目,医药项目,金融项目】
  13. oracle启动pmon,PMON和SMON的功能 - oracle - 善待自己,切莫活在过去
  14. node.js安装和vue全局安装教程
  15. 使用JavaScript 实现简单的移动和缓动的动画效果
  16. mac最值得关注的终端工具,全功能串行终端管理软件Serial
  17. Codeforces Round #439 (Div. 2) E. The Untended Antiquity (hash+数状数组)
  18. 叮咚,ps术语请查收~
  19. 数据时代大数据管理,主要有哪些策略?
  20. 2023计算机毕业设计SSM最新选题之java公交电子站牌管理系统软件9430l

热门文章

  1. 【Please, upgrade your dependencies to the actual version of cor问题】
  2. im即时聊天离线消息php,IM-demo
  3. leetcode 2007. 从双倍数组中还原原数组(C++、java、python)
  4. iptables之raw表
  5. 论文笔记及Pytorch复现:A Dual-Stage Attention-Based Recurrent Neural Network for Time Series Prediction
  6. #ex8 C语言标准实验报告
  7. 五中高考的成绩单2021查询,北京五中高考成绩解读
  8. 不小心将 U 盘抹成 APFS 格式,应该如何恢复?
  9. PKU ACM 1006 生理周期
  10. 用友U8应付期初数据录入案例教程