AcWing 898. 数字三角形 (每日一题)

这篇具有很好参考价值的文章主要介绍了AcWing 898. 数字三角形 (每日一题)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好 我是寸铁 希望这篇题解对你有用,麻烦动动手指点个赞或关注,感谢您的关注

注意

像数组下标出现i-1的,在循环的时候从i=1开始。

关于0x3f3f3f3f和Integer.MAX_VALUE

0x3f3f3f3f:1061109567
Integer.MAX_VALUE:2147483647
在选用Integer.MAX_VALUE时,很可能会出现数据溢出
所以在用Integer.MAX_VALUE需要先取MAX再加a[i][j];

边界值初始化

AcWing 898. 数字三角形 (每日一题),每日一题,蓝桥杯上岸,java,算法,leetcode,蓝桥杯,线性DP

注:做数字三角形这题时,初始化时需要注意一下边界
由于我们状态计算时,是计算左上右下的方向的最大值。
在边界时0(左上)j+1(右下)需要进行初始化
我们在初始化每一个点的状态f[i][j]时需要多初始化两个点
每一行下标分别是0一个是j+1

模板1(INF取0x3f3f3f3f)

import java.util.*;
public class Main{
    static int N=510,INF=0x3f3f3f3f;
    static int a[][]=new int[N][N];
    static int f[][]=new int[N][N];
    public static void main(String []args){
        Scanner in = new Scanner(System.in);
        int n=in.nextInt();
        for(int i=1;i<=n;i++){
            for(int j=1;j<=i;j++){
                a[i][j]=in.nextInt();
            }
        }
        for(int i=0;i<=n;i++){
            for(int j=0;j<=i+1;j++){
                f[i][j]=-INF;
            }
        }
        f[1][1]=a[1][1];
        for(int i=2;i<=n;i++){
            for(int j=1;j<=i;j++){
            f[i][j]=Math.max(f[i-1][j-1]+a[i][j],f[i-1][j]+a[i][j]);    
            }
        }
        long res=-INF;
        for(int i=1;i<=n;i++){
            res=Math.max(res,f[n][i]);
        }
        
        System.out.println(res);
    }
}

模板2(INF取MAX_Integer)

注:文章来源地址https://www.toymoban.com/news/detail-679400.html

import java.util.*;
public class Main{
    static int N=510,INF=Integer.MIN_VALUE;
    static int a[][]=new int[N][N];
    static int f[][]=new int[N][N];
    public static void main(String []args){
        Scanner in = new Scanner(System.in);
        int n=in.nextInt();
        for(int i=1;i<=n;i++){
            for(int j=1;j<=i;j++){
                a[i][j]=in.nextInt();
            }
        }
        for(int i=0;i<=n;i++){
            for(int j=0;j<=i+1;j++){
                f[i][j]=-INF;
            }
        }
        f[1][1]=a[1][1];
        ///注意初始化
        for(int i=2;i<=n;i++){
            for(int j=1;j<=i;j++){
            f[i][j]=Math.max(f[i-1][j-1],f[i-1][j])+a[i][j];    
            }
        }
        long res=-INF;
        for(int i=1;i<=n;i++){
            res=Math.max(res,f[n][i]);
        }
        System.out.println(res);
    }
}

往期回顾

不清楚蓝桥杯考什么的点点下方👇

考点秘籍

想背纯享模版的伙伴们点点下方👇

蓝桥杯省一你一定不能错过的模板大全(第一期)

蓝桥杯省一你一定不能错过的模板大全(第二期)

蓝桥杯省一你一定不能错过的模板大全(第三期)

蓝桥杯省一你一定不能错过的模板大全(第四期)!!!

想背注释模版的伙伴们点点下方👇

蓝桥杯必背第一期

蓝桥杯必背第二期

往期精彩回顾

蓝桥杯上岸每日N题 第一期(一)!!!

蓝桥杯上岸每日N题第一期(二)!!!

蓝桥杯上岸每日N题第一期(三)!!!

蓝桥杯上岸每日N题第二期(一)!!!

蓝桥杯上岸每日N题第三期(一)!!!

蓝桥杯上岸每日N题 第四期(最少刷题数)!!!

蓝桥杯上岸每日N题 第五期(山)!!!

蓝桥杯上岸每日N题 第六期(求阶乘)!!!

蓝桥杯上岸每日N题 第七期(小猫爬山)!!!

蓝桥杯上岸每日N题 第八期 (全球变暖)!!!

蓝桥杯每日N题 (消灭老鼠)

蓝桥杯每日N题(杨辉三角形)

蓝桥杯每日N题 (砝码称重)

蓝桥杯上岸每日N题(鸡尾酒)

操作系统期末题库 第九期(完结)

LeetCode Hot100 刷题(第三期)

idea创建SpringBoot项目报错解决方案

数据库SQL语句(期末冲刺)

想看JavaB组填空题的伙伴们点点下方 👇

填空题

竞赛干货

算法竞赛字符串常用操作大全

蓝桥杯上岸必刷!!!(模拟/枚举专题)

蓝桥杯上岸必背!!! (第三期 DP)

蓝桥杯上岸必背!!!(第四期DFS)

蓝桥杯上岸必背!!!(第五期BFS)

蓝桥杯上岸必背!!!(第六期树与图的遍历)

蓝桥杯上岸必背!!!(第七期 最短路算法)

蓝桥杯上岸必背!!!(第八期 简单数论)

蓝桥杯上岸必刷!!!(进制、数位专题)

蓝桥杯上岸考点清单 (冲刺版)!!!

蓝桥杯上岸必背模板 (纯享版)

到了这里,关于AcWing 898. 数字三角形 (每日一题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数字三角形-蓝桥杯真题动态规划PYTHON解法

    目录 题目描述  解题思路 DP初始化 DP最终条件 DP初始条件 题目限制条件 总代码 首先映入我们眼帘的就是一个三角形,加求路径和最大,类似于找最短路径的题,很明显是一个二维数组的动态规划问题,对于动态规划问题我们只需要找好最终条件,初始条件(也就是特殊条件

    2024年02月09日
    浏览(24)
  • 蓝桥杯第十一届省赛——数字三角形(python组)

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

    2023年04月10日
    浏览(35)
  • 蓝桥杯真题——三角形的面积

    题目描述 平面直角坐标系中有一个三角形, 请你求出它的面积。 输入描述 第一行输入一个 T ,代表测试数据量. 每组测试数据输入有三行,每行一个实数坐标 (x,y) 代表三角形三个顶点。 1≤T≤10^3,   −10^5≤x,y≤10^5 输出描述 输出一个实数表示三角形面积。结果保留2位小

    2023年04月11日
    浏览(28)
  • 蓝桥杯官网填空题(三角形的面积)

    题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 已知三角形三个顶点在直角坐标系下的坐标分别为: ```txt (2.3, 2.5) (6.4, 3.1) (5.1, 7.2) ```txt 求该三角形的面积。 注意,要提交的是一个小数形式表示的浮点数。 要求精确到小数后 3 位

    2024年02月09日
    浏览(38)
  • 【数字三角形】

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

    2024年02月05日
    浏览(41)
  • 【数字三角形】(C++版)

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

    2024年02月16日
    浏览(26)
  • 【洛谷】数字三角形(动态规划)

    目录 边读边存 优化成一维数组——倒序没用了? 从上往下存,最大值存在最后一行,最后遍历最后一行得到最大值的写法  边读边存,可以有效降低时间复杂度 在上一篇文章(【洛谷】采药(01背包问题))将二维数组优化成一维数组的过程中,内层循环我们是采用倒序的方

    2024年02月16日
    浏览(33)
  • 蓝桥 卷“兔”来袭编程竞赛专场-03破解三角形密码 题解

    挑战介绍 三角形密码指的是将一串字符串按照正直角三角形的形状排列,传递的信息隐藏在每一行的最后一个字符,然后将所有的行的最后一个字符依次连接,就是需要传递的信息。 例如加密后的字符串是:我们爱的是蓝色的心桥 将加密字符串按照正直角三角形填充后如下

    2023年04月16日
    浏览(28)
  • 动态规划入门(数字三角形模型)

    备战 2024年蓝桥杯算法学习 -- 每日一题 Python大学A组         试题一:摘花生         试题二:最低通行费用         试题三:方格取数         试题四:传纸条 【题目描述】         Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩

    2024年04月14日
    浏览(33)
  • 【题解 | 基础动态规划】:数字三角形

    链接: [USACO1.5] [IOI1994]数字三角形 Number Triangles 观察下面的数字金字塔。 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 在上面的样例中,从 7 → 3 → 8 → 7 → 5 7 to 3 to 8 to 7 to 5 7 →

    2024年04月14日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包