#跳跃100分
#输入数据
i=list(map(int,input().split()))
n=i[0]
m=i[1]
num=[]
for i in range(n):
hang=list(map(int,input().split()))
num0=[]
for j in range(m):
num0.append(hang[j])
num.append(hang)
#动态规划
step=[[0 for i in range(m)]for j in range(n)]
step[0][0]=num[0][0]
for i in range(n):
for j in range(m):
if(i==n and j==m):
pass
else:
for x in range(min(i,n-1),min(i+3,n)):
for y in range(min(j,m-1),min(j+3,m)):
if(x+y-i-j<4 and x+y-i-j>0):
step[x][y]=max(step[x][y],step[i][j]+num[x][y])
else:
pass
print(step[n-1][m-1])
【蓝桥杯模拟赛】【跳跃问题】python
最新推荐文章于 2023-03-30 21:30:57 发布