数字三角形(DP)

简介: 问题:   给定一个由n行数字组成的数字三角形,如下图所示: 7   3 8   8 1 0    2 7 4 4    4 5 2 6 5   试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大(每一步只能从一个数走到下一层上和它最近的左边的数或者右边的数)。

问题:
  给定一个由n行数字组成的数字三角形,如下图所示:

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

  试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大(每一步只能从一个数走到下一层上和它最近的左边的数或者右边的数)。

输入:
  第一行是数字三角形的行数,接下来 n 行是数字三角形中的数字。  

  比如:

  5

  7

  3 8

  8 1 0

  2 7 4 4

  4 5 2 6 5  

输出:
  输出这个最大值。

思路:从最低层向上递推,除最底层外,每一行每个点的最大值等于其本身加上下面一行所对应的左右两点的最大值
D[i][j] = max(D[i+1][j],D[i+1][j+1]) + D[i][j];

#include <iostream>
#include <algorithm>
using namespace std;
#define MAX 101
int D[MAX][MAX];
int n;


int MaxSum(int num){
    int i, j;
    for(i = num - 1; i >= 1; i--) //最底层 
        for(j = 1; j <= i; j++) {
            D[i][j] = max(D[i+1][j],D[i+1][j+1]) + D[i][j];
        }

    return D[1][1]; 
} 
int main(){
    int i,j;

    cin >> n;

    for(i=1; i<=n; i++) 
        for(j=1; j<=i; j++)
            cin >> D[i][j];

    cout << MaxSum(n) << endl;
}
目录
相关文章
|
监控 NoSQL Redis
看完这篇就能弄懂Redis的集群的原理了
看完这篇就能弄懂Redis的集群的原理了
568 0
|
机器学习/深度学习 测试技术 信息无障碍
VLM集体失明?视力测试惨败,GPT-4o、Claude 3.5全都不及格
【8月更文挑战第2天】新研究表明,顶尖视觉语言模型(VLMs)如GPT-4o和Claude 3.5,在看似简单的视觉任务上表现堪忧,诸如判断圆圈是否重叠或线条是否交叉等。此发现揭示了即便是在图像理解方面表现出色的VLMs也存在基本视觉认知的局限性,提示模型融合视觉信息的方式有待改进。论文详细探讨了可能的原因及未来提升方向。[@arxiv:2407.06581]
216 6
|
安全 网络协议 Java
技术好文:SpringBoot学习(五)RSocket和Security
技术好文:SpringBoot学习(五)RSocket和Security
|
11月前
|
测试技术 Python
自动化测试项目学习笔记(一):unittest简单运行(初始化,清除,设置测试行为)
本文介绍了Python的unittest框架的基础用法,包括测试初始化(setup)、清除(tearDown)函数的使用,以及assertEqual和assertGreaterEqual等断言方法,并展示了如何创建测试用例,强调了测试函数需以test_开头才能被运行。
182 1
自动化测试项目学习笔记(一):unittest简单运行(初始化,清除,设置测试行为)
|
10月前
|
存储 数据可视化 API
ModelScope魔搭11月版本发布月报
ModelScope 11月更新来袭!本次更新依然是干货满满的一期。
|
11月前
|
SQL 存储 安全
网络安全与信息安全的现代挑战:漏洞、加密与意识
【10月更文挑战第20天】在数字时代的浪潮下,网络安全和信息安全的重要性日益凸显。本文旨在探讨当前网络安全面临的主要挑战,包括安全漏洞的发现与利用、加密技术的应用与局限,以及提升个人和组织的安全意识的必要性。通过分析这些关键领域,我们不仅能更好地理解网络威胁的本质,还能采取有效措施保护我们的数字资产。文章将提供对网络安全现状的深刻见解,并指出未来研究的方向。
|
11月前
|
机器学习/深度学习 人工智能 安全
AI攻克132年的未解之谜 | AI大咖说
本文探讨了AI在数学证明和自然科学研究中的最新进展,特别是AI成功找到新的李雅普诺夫函数,解决了132年的数学难题。文中介绍了李雅普诺夫函数的重要性,AI如何通过Transformer模型实现高准确率的预测,并讨论了AI在数学和自然科学领域的广泛应用及未来挑战。【10月更文挑战第9天】
342 1
|
11月前
|
存储 安全 Linux
Linux文件管理命令md5sum awk
通过结合 `md5sum`和 `awk`,不仅可以高效地进行文件完整性校验,还能灵活地处理和分析校验结果,为系统管理、数据审计等工作提供强大的支持。
271 2
|
11月前
|
开发工具 git
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
278 0
|
NoSQL BI 数据处理
【超实用攻略】MongoDB 聚合框架:从入门到精通,带你解锁数据处理新姿势!
【8月更文挑战第24天】MongoDB是一款以其灵活性和高性能闻名的NoSQL数据库。其强大的聚合框架采用管道式处理,允许用户定义多个数据处理阶段如过滤、分组等。本文通过示例数据库`orders`和`products`,演示如何利用聚合框架计算各产品的总销售额。示例代码展示了使用`$lookup`连接两集合、`$unwind`打平数组及`$group`按产品ID分组并计算总销售额的过程。这突显了聚合框架处理复杂查询的强大能力,是进行数据分析和报表生成的理想选择。
191 3