题目大意:输入一个N
×
\times
× M 的矩阵,从左上走到右下最大的元素和。
输入:第一行 N M;第二行以后,共N行,每行M个数;
输出:最大元素和
思路:动态规划-矩阵问题
代码:
a=list(map(int,input().strip().split(' ')))
N,M=a[0],a[1]
A=[]
if N==0 and M==0:
print(0)
for i in range(N):
A.append(list(map(int,input().strip().split(' '))))
dp= [[0] * M for _ in range(N)]
dp[0][0]=A[0][0]
for i in range(1, N):
dp[i][0] = dp[i - 1][0] + A[i][0]
for j in range(1, M):
dp[0][j] = dp[0][j - 1] + A[0][j]
for i in range(1, N):
for j in range(1, M):
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + A[i][j]
print(dp[N - 1][M - 1])