第一题就不说了,类似于求多维数组下标,打表都能AC了
着重说一下第二题,典型的DP题,状态转移方程为
其中要提前判断j, j-1, j-2是否越界
dp完成后,输出dp数组最后一行中最大的数即可
考试的时候手忙脚乱,代码写得有点乱,将就看吧(Python)
n = int(input()) dp = [] for i in range(n): dp.append(list(map(int, input().split()))) for i in range(1, len(dp)): for j in range(len(dp[i])): tmp = [j, j - 1, j - 2] tmp = list(filter(lambda x: x >= 0 and x < len(dp[i - 1]), tmp)) lst = [] for k in tmp: lst.append(dp[i-1][k]) dp[i][j] = dp[i][j] + max(lst) print(max(dp[-1]))
全部评论
(0) 回帖