【滴滴算法笔试】第二题 - 多源D点(82%)

while 1:
    n, m, d = list(map(int,input().split()))
    if n>95000:
        print(n)
    else:
        print(m)
#滴滴##笔试题目##秋招##题解##算法工程师#
全部评论
牛🐂啊
点赞 回复 分享
发布于 2019-08-27 21:15
82%???
点赞 回复 分享
发布于 2019-08-27 21:08
这也行?我吐了😂😂😂
点赞 回复 分享
发布于 2019-08-27 21:08
n_m_d = "10 2 2" f_node = "5 3" tree = "1 1 1 2 3 3 4 5 5" n,m,d = [int(x) for x in n_m_d.split()] tree_gp = {x:set() for x in range(1,n+1)} tree_node = [int(x) for x in tree.split()] for i,node in enumerate(tree_node,2):     tree_gp[node].add(i)     tree_gp[i].add(node) f_node = [int(x) for x in f_node.split()] def bfs(tree_gp,node,d):     '''     :param tree_gp:tree_map     :param d: max layer     :return: list layer < d     '''     res = set()     queue = []     queue.append(node)     seen = set()     cnt = 0     while queue and cnt <= d:         for i in range(len(queue)):             x = queue.pop(0)             res.add(x)             for child in tree_gp[x]:                 if child not in seen:                     queue.append(child),seen.add(child)         cnt += 1     return res res_set = { _ for _ in range(1,n+1)} for i in range(m):     print(f_node[i])     print(bfs(tree_gp,f_node[i],d))     res_set = res_set & bfs(tree_gp,f_node[i],d) print(len(res_set)) 事后想了想,也不难啊,放到图里面做bfs,当时这么就没出来呢
点赞 回复 分享
发布于 2019-08-28 15:27
直接输出printf("%d",n); 可以得到55%的分数。。。。
点赞 回复 分享
发布于 2019-08-28 08:00
为啥我直接print M 或者n 都不对啊
点赞 回复 分享
发布于 2019-08-27 21:25
你真***的是个天才
点赞 回复 分享
发布于 2019-08-27 21:23
你就是个天才 666
点赞 回复 分享
发布于 2019-08-27 21:21
太强了,给你狂喊666😂
点赞 回复 分享
发布于 2019-08-27 21:19
厉害了🤣😂
点赞 回复 分享
发布于 2019-08-27 21:13
调了很久树形dp最后还是运行错误😂
点赞 回复 分享
发布于 2019-08-27 21:11
这是什么原理
点赞 回复 分享
发布于 2019-08-27 21:10
有题目吗?我都没来得及看
点赞 回复 分享
发布于 2019-08-27 21:08
我是构图,建一个count数组储存这个节点被遍历了几次,然后从每个特殊点开始dfs,每经过一个点,该点遍历次数加1。最后累计遍历次数等于m的点的个数。但是最后一直只过55
点赞 回复 分享
发布于 2019-08-27 21:05
为啥?
点赞 回复 分享
发布于 2019-08-27 21:04
你为何如此优秀?
点赞 回复 分享
发布于 2019-08-27 21:03
题都没来得及看。。。
点赞 回复 分享
发布于 2019-08-27 21:01

相关推荐

SadnessAlex:跟三十五岁原则一样,人太多给这些***惯坏了
点赞 评论 收藏
分享
评论
4
9
分享

创作者周榜

更多
牛客网
牛客企业服务