2020阿里笔试 3月25号
#阿里笔试2020#
第二题时间不够了,考试结束10分钟才搞出来
#阿里笔试2020##阿里巴巴##笔试题目#
第一题AC
动态规划 dp[i][j]表示在以arr[i][j]为结尾情况下的最小邻差绝对值求和结果
n = int(input().strip()) arr = [[0]*n for _ in range(3)] for i in range(3): arr[i] = list(map(int, input().split())) dp = [[0]*n for _ in range(3)] dp[0][0], dp[1][0], dp[2][0] = 0, 0, 0 for lie in range(1,n): for hang in range(3): dp[hang][lie] = dp[0][lie - 1] + abs(arr[hang][lie] - arr[0][lie - 1]) dp[hang][lie] = min(dp[hang][lie], dp[1][lie - 1] + abs(arr[hang][lie] - arr[1][lie - 1])) dp[hang][lie] = min(dp[hang][lie], dp[2][lie - 1] + abs(arr[hang][lie] - arr[2][lie - 1])) #print(dp) print(min(dp[0][-1], dp[1][-1], dp[2][-1])) #print(arr) '''#示例输入 5 5 9 5 4 4 4 7 4 10 3 2 10 9 2 3 '''
输出:
5
步骤:
1、按行复原矩阵
2、按列复原矩阵
3、再按行复原矩阵
n,m,q = list(map(int,input().split())) A = [[0]*m for _ in range(n)] Q = [[0]*2 for _ in range(q)] for i in range(n): A[i] = list(map(int, input().split())) for i in range(q): Q[i] = list(map(int, input().split())) for hang in range(n): flag = 0 i , i_val, j, j_val =-1,0,-1,0 for lie in range(m): if A[hang][lie]: flag += 1 if i==-1: i, i_val = lie, A[hang][lie] elif j==-1: j, j_val = lie, A[hang][lie] if flag>=2: for lie in range(m): A[hang][lie] = A[hang][i] + int((j_val-i_val)/(j-i)*(lie - i)) #print(A) for lie in range(m): flag = 0 i , i_val, j, j_val =-1,0,-1,0 for hang in range(n): if A[hang][lie]: flag += 1 if i==-1: i, i_val = lie, A[hang][lie] elif j==-1: j, j_val = lie, A[hang][lie] if flag>=2: for hang in range(n): A[hang][lie] = A[hang][i] + int((j_val-i_val)/(j-i)*(lie - i)) #print(A) for hang in range(n): flag = 0 i , i_val, j, j_val =-1,0,-1,0 for lie in range(m): if A[hang][lie]: flag += 1 if i == -1: i, i_val = lie, A[hang][lie] elif j==-1: j, j_val = lie, A[hang][lie] if flag>=2: for lie in range(m): A[hang][lie] = A[hang][i] + int((j_val-i_val)/(j-i)*(lie - i)) #print(A) for i in range(q): if A[Q[i][0]-1][Q[i][1]-1] == 0: print('Unkown') else: print(A[Q[i][0]-1][Q[i][1]-1]) #print(A, Q) '''#示例输入 2 3 6 1 0 3 0 0 0 1 1 1 2 1 3 2 1 2 2 2 3 '''输出:
1 2 3 Unkown Unkown Unkown