8.11贝壳笔试

java后端开发岗位,第四题用了图的最小生成树求的,并查集,只过了40,有没有大佬指点下哪里错了
# 第一题 会问字符串 AC  import sys
n = int(sys.stdin.readline().strip())
s = sys.stdin.readline().strip()
res = 0 for i in range(n//2): if s[i] != s[-i-1]:
        res+=1 print(res) 
# 第二题 方块着色问题 AC  import sys import math
t = int(sys.stdin.readline().strip())
res = [] def issu(num): for i in range(2, int(math.sqrt(num))+1): if num%i ==0: return i return num for i in range(t):
    n, m = list(map(int, sys.stdin.readline().strip().split()))
    r1, r2 = float('inf'),float('inf') if n >1:
        r1 = issu(n) if m >1:
        r2 = issu(m) if m == 1 and n ==1:
        r1 = r2 =1  res.append(min(r1, r2)) for i in res: print(i)
 # 第三题  #  不会
# 第四题 40  import sys  def Cab(a,b):
    res = 1  if b > a//2:
        b = a-b for i in range(a,a-b,-1):
        res *=i for i in range(1,b+1):
        res /=i return int(res)
n, m = list(map(int, sys.stdin.readline().strip().split()))
edges = [] for _ in range(m):
    u, v, a, b = list(map(int, sys.stdin.readline().strip().split()))
    w = Cab(a,b)
    edges.append([u,v,w])
edges.sort(key= lambda x: x[2],reverse=True)
parent = list(range(n+1))
rank = [1]*(n+1) def find(x): if parent[parent[x]] != parent[x]:
        parent[x] = find(parent[x]) return parent[x] def union(x,y):
    px,py = find(x),find(y) if px == py: return False   if rank[px] > rank[py]:
        parent[py] = px elif rank[px] < rank[py]:
        parent[px] = py else:
        parent[px] = py
        rank[py] += 1  return True res = 0 for x, y, w in edges: if union(x,y):
        res +=w
flag = True for i in range(1, n): if find(i) != find(i+1):
        flag = False  break if flag: print(res%1000000007) else: print(-1)


#笔试题目##贝壳找房#
全部评论
可以给个题面不
点赞 回复 分享
发布于 2020-08-11 21:30
排版能调哈吗大佬 有点迷…
点赞 回复 分享
发布于 2020-08-11 21:28

相关推荐

买蜜雪也用卷:我觉得应该没有哪个人敢说自己熟练使用git,代码分支一复杂还是得慢慢寻思一下的,不过基本的拉代码提交代码还有分支什么的是应该会
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务