顺丰8-29号 数据分析 笔试编程大题

原题在这。
就AC掉64%
能想到比较简单的是,假设每个人最多会一种的情况下。
1、不同语言之间只要一个学习机即可让两批人都能交流,剩下一个语言都不会的,每人一个学习机即可。基于此。程序如下。
import sys
line = sys.stdin.readline().strip()
nmk = list(map(int, line.split()))
n = nmk[0]
m = nmk[1]
k = nmk[2]
lang = {}
ans = 0
for i in range(k):
    line = sys.stdin.readline().strip()
    uv = list(map(int,line.split()))
    u = int(uv[0])
    v = int(uv[1])
    if v not in lang.keys():
        lang[v] = 1
    else:
        lang[v] += 1

ans = len(lang.keys()) - 1
ans += n - sum(lang.values())

print(ans)

2、此外 ,一个人会多种语言的情况,这个情况下再细分为两种。
  • 会多种语言的人之间没有重复的语言,例如1 会 AB 语言,2会CD语言。那么就可以在一的情况中减少两个学习机,这个时候可以把AB、CD分别看成一个整体。两个整体之间就只需要一个学习机即可
  • 会多种语言的人之前有重复的语言, 例如1会AB,2会BC,或者1会ABC ,2会BCD   此时减去重复语言个数数量的学习机
但是这个时候的问题就来了,有可能两个人会的语言都大于1,且会的一样。这个数量就不好处理。
临界情况是想到了。但是写不出来。痛苦,有没有大神提供下思路。求解

#顺丰科技##数据分析师##笔试题目##校招##内推#
全部评论

相关推荐

风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
看到这个内容真是闹麻了。。。。。。现在有了AI以后很多人面试都会作弊吗? 那对老老实实面试的人岂不是不公平....
程序员牛肉:公平那是对小孩子讲的童话故事,成年人的世界只有能不能接受失败的后果。 你要是能接受面试作弊被发现之后多家公司联合永久拉黑的后果,你就搞。
点赞 评论 收藏
分享
评论
1
12
分享

创作者周榜

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