欢迎点赞交流讨论T1先后经过三个点,求最短距离;平面可连接扩展。模拟即可,参考代码:m, n = list(map(int, input().split()))x1, y1 = list(map(int, input().split()))x2, y2 = list(map(int, input().split()))x3, y3 = list(map(int, input().split()))def f(a, b, l):    return min(abs(a-b), abs(min(a, b)+l - max(a, b)))  print(f(x1, x2, m)+f(y1, y2, n)+f(x2, x3, m)+f(y2, y3, n))T2向有根树的叶添加节点,使得距离根一定范围内的节点数最大。只需要关心叶节点和它的深度即可,注意是无向图,不要被例题图片迷惑了,参考代码:# Python默认的最大递归深度是1000,小于本题的范围,要设置下import syssys.setrecursionlimit(1000000000)n, k = list(map(int, input().split()))G = [[] for i in range(n)]for _ in range(n-1):    u, v = list(map(int, input().split()))    G[u-1].append(v-1)    G[v-1].append(u-1)    def dfs(cur, depth, parent):    if depth>k:        return 0    ans = 1    if len(G[cur])>1 or parent==-1:        for child in G[cur]:            if child!=parent:                ans += dfs(child, depth+1, cur)    else:        ans += max(0, k-depth)    return ans  print(dfs(0, 0, -1))T3抽卡题,规则不再赘述,玩过原的应该会熟悉些。跟实际游戏还是有点区别的,实际上89抽之前也会增大抽取概率,本题留了一手。数据范围很小,维护一个第i抽出金的概率数组,二层循环模拟即可,最后期望就是抽数乘以概率的累加和。参考代码:p = float(input())tmp = [0]*181def wai(cur, index):    for i in range(1, 90):        tmp[index+i] += cur*p        cur = cur*(1-p)    tmp[index+90]+= curcur = 1for i in range(1, 90):    tmp[i] += cur*p/2    wai(cur*p/2, i)    cur = cur*(1-p)tmp[90] += cur/2wai(cur/2, 90)print(sum([i*tmp[i] for i in range(len(tmp))]))个人认为整体难度很白给,没有任何难度算法和数据结构,比暑期实习的题简单多了
点赞 9
评论 3
全部评论

相关推荐

06-23 18:25
沈阳大学 Java
HR已读不回,是我说话方式不对吗?
大白之主:你是串子吗? hr: 我们不招人了,把岗位挂着boss只是因为我闲得慌
点赞 评论 收藏
分享
05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
AAA专业长城贴瓷砖刘大爷:这样的简历我会直接丢进垃圾桶,花里胡哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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