[白俊-11048]移動



コード#コード#

import sys
from collections import deque
input = sys.stdin.readline

n,m=map(int,input().split())
maze=[list(map(int,input().split())) for _ in range(n)]

dp=[[0]*(m+1) for _ in range(n+1)]
for i in range(1,n+1):
    for j in range(1,m+1):
        dp[i][j]=max(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+maze[i-1][j-1]

print(dp[n][m])

に答える


dp[i][j]は(i,j)迷宮で部屋に持ち込んだキャンディの最大の歌手.
これはdp[i-1][j]+迷宮[i-1][j-1]またはdp[i-1][j-1]+迷宮[i-1][j-1]またはdp[i-1][j-1]+迷宮[i-1][j-1]の中で最大の値である.
迷宮[i-1][j-1]の原因はdpの大きさがn+1,m+1であるためである.