9.14米哈游笔试
试卷:NLP开发第二批
选择题主要还是包括了一些NLP,机器学习,数学概率、数据结构等知识。
编程一共三道。
1. 矩阵非对角线上的数顺时针旋转90°,两个对角线上的数逆时针旋转90°。
思路:直接看代码吧,ac了。利用一些指针操作,对矩阵的数进行交换。
n = int(input()) arr = [] for i in range(n): arr.append(list(map(int, input().split()))) for i in range(n): for j in range(i,n): if i == j: continue else: arr[i][j],arr[j][i] = arr[j][i],arr[i][j] for k in range(n): i,j = 0,n-1 while i<j: arr[k][i],arr[k][j] = arr[k][j],arr[k][i] i+=1 j-=1 p,q = 0,n-1 while p < q: arr[p][p],arr[q][q] = arr[q][q],arr[p][p] p+=1 q-=1 for k in range(n//2): arr[k][n-1-k],arr[n-1-k][k] = arr[n-1-k][k],arr[k][n-1-k] for k in range(n): res = list(map(str, arr[k])) print(" ".join(res))
2. 两个数组分别代表攻击和耐久。问攻击在一个[L,R]区间内的对应耐久和是多少。
思路:这题感觉不用求和么?反正我是超时了没通过,但是思路就是获取index直接返回累加的和即可。
def help(arr, l ,r): idx1, idx2 = -1, -1 for i,x in enumerate(arr): if x[0]<l: idx1 = i if x[0] <= r: idx2 = i if (idx1 == -1 and idx2 == -1)&nbs***bsp;(idx1 == len(arr)-1 and idx2 == len(arr)-1): return 0 elif idx1 == -1: return arr[idx2][1] else: return arr[idx2][1] - arr[idx1][1] n, t = map(int, input().split()) arr1 = list(map(int, input().split())) arr2 = list(map(int, input().split())) arr = [] for i in range(n): arr.append([arr1[i],arr2[i]]) arr.sort(key=lambda x:x[0]) for i in range(1,n): arr[i][1] += arr[i-1][1] print(help(arr,7,9))
思路:这没时间了,凌晨做题也太晕了完全就是瞎写。。。代码可以略过。思路可能是用递归吧。
def help(matrix, x, used): used[x-1] = True lst = matrix[x-1] for i,num in enumerate(lst): if num == 1 and not used[num-1]: used[num-1] = True if (x+num)%2 == 0: res = help(matrix,num,used) else: res = help(matrix,num,used)+1 used[num-1] = False else: continue return res n,x = map(int,input().split()) matrix = [[0 for _ in range(n)] for _ in range(n)] for i in range(n-1): u,v = map(int,input().split()) matrix[u-1][v-1] = 1 matrix[v-1][u-1] = 1 used = [False]*n print(help(matrix,x,used)) def help(matrix, x, used): res = 1 used[x-1] = True lst = matrix[x-1] for i,num in enumerate(lst): if num == 1 and not used[num-1]: used[num-1] = True if (x+num)%2 == 0: res = help(matrix,num,used) else: res = help(matrix,num,used)+1 used[num-1] = False else: continue return res
求米哈游高抬贵手~