#P4227.第2题-动态注意力掩码调度问题
第2题-动态注意力掩码调度问题 - problem_ide - CodeFun2000
import sys import numpy as np import math def solve(): data = sys.stdin.read().split() if not data: return n = int(data[0]) d = int(data[1]) idx = 2 x = np.array(list(map(float, data[idx:idx + n * d]))).reshape(n, d) idx = idx + n * d c = [] for _ in range(n): c.append(int(data[idx])) idx += 1 # print(x) # print(c) for i in range(n): x_sum = 0 for j in range(d): x_sum += x[i, j] ** 2 x_avg = math.sqrt(x_sum / d) x[i] = x[i] / x_avg #print('x=',x) A = np.zeros((n, n)) for i in range(n): for j in range(i): A[i, j] = np.sum(x[i] * x[j]) / math.sqrt(d) #print('A=',A) A=A*A #print('A=', A) S = 0 for i in range(n): A_sort = sorted(A[i], reverse=True) #print('A_sort=',A_sort) end = c[i] if c[i]>i: end = i #print('sum(A_sort[0:end])=',sum(A_sort[0:end])) S += sum(A_sort[0:end]) print(round(100 * S)) if __name__ == '__main__': solve()