第一题双指针 第二题目做法复杂度爆炸,想不出来更好的: if __name__ == '__main__': n = int(input()) mat = [[0x3f3f3f3f for _ in range(n + 1)] for _ in range(n + 1)] for i in range(n + 1): mat[i][i] = 0 for _ in range(1, n): a, b, c = list(map(int, input().split())) mat[a][b] = c mat[b][a] = c for i in range(n + 1): for j in range(n + 1): for k in range(n + 1): if mat[i][k] + mat[k][j] < mat[i][j]: mat[i][j] = mat[i][k] + mat[k][j] li_a = list(map(int, input().split()))[1:] li_b = list(map(int, input().split()))[1:] li_c = list(map(int, input().split()))[1:] result = [] for a in li_a: for b in li_b: for c in li_c: result.append((mat[a][b] + mat[b][c] + mat[a][c]) / 2) num = len(result) print(sum(result) / num)
1 5

相关推荐

03-27 01:58
已编辑
西北工业大学 Java
在平静中度过当下:如果这个bg也简历挂的话可能他们现在不缺人了吧,我也是这两天投的,阿里和快手投的岗都是简历秒挂
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务