数字三角形-蓝桥杯真题动态规划PYTHON解法
创始人
2025-05-28 15:12:14
0次

目录

题目描述

 解题思路

DP初始化

DP最终条件

DP初始条件

题目限制条件

总代码


题目描述

 解题思路

首先映入我们眼帘的就是一个三角形,加求路径和最大,类似于找最短路径的题,很明显是一个二维数组的动态规划问题,对于动态规划问题我们只需要找好最终条件,初始条件(也就是特殊条件),当然还要题目限制的条件既可求解。

DP初始化

我们需要两个二维数组,一个是array数组存放的是题目输入进来的三角形数据,第二个数组是dp数组存放的是到每一步的最大路径和。

    n=int(input())array=[list(map(int,input().strip().split())) for j in range(n)]dp=[[0 for i in range(n)]for j in range(n)]

DP最终条件

排开特殊的状态也就是初始状态,一个数无非从左上来或者从右上来,取其中两个最大的和该点相加这就是最终条件

dp[i][j]=max(dp[i-1][j-1]+array[i][j],dp[i-1][j]+array[i][j])

DP初始条件

我们观察此题一共有三个初始状态需要我们初始化:

1.当这个数是第一个数时,我们就直接把值赋值给它

if i==j==0:dp[i][j]=array[0][0]

2.当这个数在第一列时,那么他的值只可能从右上来,我们需要把上一排右上的值赋值给他

elif j==0:dp[i][j]=dp[i-1][j]+array[i][j]

3.当这个数是这一排最后一个数时,由题目可知也就是i=j时,这个数的值只可能从左上来,我们需要把上一排左上的值赋值给他

 elif i==j:dp[i][j]=dp[i-1][j-1]+array[i][j]

题目限制条件

通过以上的DP我们算出了每个点的最大路径值,那么题目要求我们向左和向右的差值不能超过1。我们通过观察可以发现:

1.当到奇数行时要满足向左向右差值不能是1,这个值必然是最中间的值

    if n&1:print(dp[n-1][n//2])

2.当到偶数行时要满足向左向右差值不能是1,这个值必然是最中间两个值的一个

    else:print(max(dp[n-1][n//2-1],dp[n-1][n//2]))

其实就是从奇数行(第一行)的最中间出发,然后出发到第二行,到第三行奇数行的时候为了平衡不管第二行是什么结果都会跑到第三行正中间,平衡后 就又可以左右都走,跑到了偶数行的中间两个。

总代码

    n=int(input())array=[list(map(int,input().strip().split())) for j in range(n)]dp=[[0 for i in range(n)]for j in range(n)]for i in range(n):for j in range(i+1):if i==j==0:dp[i][j]=array[0][0]elif j==0:dp[i][j]=dp[i-1][j]+array[i][j]elif i==j:dp[i][j]=dp[i-1][j-1]+array[i][j]else:dp[i][j]=max(dp[i-1][j-1]+array[i][j],dp[i-1][j]+array[i][j])if n&1:print(dp[n-1][n//2])else:print(max(dp[n-1][n//2-1],dp[n-1][n//2]))

相关内容

热门资讯

一分钟了解!微乐小程序辅助开发... 一分钟了解!微乐小程序辅助开发透视(开挂),微乐够级都是是真的有透视挂攻略1、微乐小程序辅助开发透视...
记者爆料!微信小程序微乐房间的... 您好,微信小程序微乐房间的挂多少钱这款游戏可以开挂的,确实是有挂的,需要了解加去威信【1367043...
重大推荐!微信小程序微乐辅助器... 重大推荐!微信小程序微乐辅助器下载(透视挂),龙江麻将微乐一直存在有透视挂方法微信小程序微乐辅助器下...
技巧知识分享!微乐小程序免费黑... 技巧知识分享!微乐小程序免费黑科技下载方法(开挂),微乐延边麻将总是存在有透视挂攻略1、起透看视 微...
详细说明!微乐广西麻辣(作弊器... 详细说明!微乐广西麻辣(作弊器),微乐棋牌麻将切实存在有透视挂插件暗藏猫腻,小编详细说明微乐广西麻辣...
热点推荐!微乐小程序辅助器免费... 热点推荐!微乐小程序辅助器免费(透视器),微乐小程序微乐系列都是真的是有透视挂插件1、微乐小程序辅助...
最新研发!微乐河北自建房脚本免... 最新研发!微乐河北自建房脚本免费入口(辅助),微乐河南红中麻将一贯存在有透视挂技巧1、下载好微乐河北...
每日必备!微信小程序游戏充值破... 每日必备!微信小程序游戏充值破解(透视挂),微乐二七王都是存在有透视挂技巧1、上手简单,内置详细流程...
9分钟了解!微乐小程序黑科技a... 您好,微乐小程序黑科技app入口这款游戏可以开挂的,确实是有挂的,需要了解加去威信【13670430...
研究成果!微乐小程序辅助工具(... 研究成果!微乐小程序辅助工具(开挂),微乐长沙跑胡子切实真的是有透视挂教程1、每一步都需要思考,不同...