本文主要是介绍python dp 地牢游戏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目思路:
从右下到左上进行动态规划。逆向计算经过每一个格子至少需要的生命值。
def loving(n,m,s):qishi=1i=n-1j=m-1dp=[[0 for i in range(3)] for j in range(3)]print(dp)dp[i][j]=max(1,1-s[i][j])j-=1while j>=0:dp[i][j]=max(1,dp[i][j+1]-s[i][j])j-=1j=m-1i-=1while i>=0:dp[i][j]=max(1,dp[i+1][j]-s[i][j])i-=1i=n-2j=m-2print(dp)for x in range(i,-1,-1):for y in range(j,-1,-1):dp_min=min(dp[x+1][y],dp[x][y+1])dp[x][y]=max(1,dp_min-s[x][y])return dp[0][0]
n=3
m=3
s=[[-2,-3,3],[-5,-10,1],[10,30,-5]]
s=loving(n,m,s)
print(s)
这篇关于python dp 地牢游戏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!