关注
我也后来做了下,思路应该是没什么问题,但我这个有很多重复计算。楼上的那个比我好 from collections import defaultdict
n,m,d = map(int,input().split())
spec = [int(c) for c in input().split()]
lis = [int(c) for c in input().split()]
# nei为节点邻接表
neighbor = defaultdict(list)
for i in range(n-1):
neighbor[i+2].append(lis[i])
neighbor[lis[i]].append(i+2)
def bfs(node0):
queue=[]
visited=set()
queue.append(node0)
visited.add(node0)
dis=[0 for _ in range(n+1)]
step=0
while queue:
node=queue.pop()
step+=1
for each in neighbor[node]:
if each not in visited:
queue.append(each)
visited.add(each)
dis[each]=step
#print(queue)
return dis
count=0
for i in range(1,n+1):
dis=0
for point in spec:
dis=max(bfs(point)[i],dis)
if dis<=d:
count+=1
print(count)
查看原帖
点赞 评论
相关推荐
07-23 15:14
重庆理工大学 机械结构工程师 点赞 评论 收藏
分享
07-01 01:25
辽宁科技大学 Java 点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司开提前批了? #
27827次浏览 268人参与
# 入职以后才知道的校招谎言 #
88655次浏览 581人参与
# 风评不好的公司,你会去吗? #
63512次浏览 450人参与
# 华子oc时间线 #
1244558次浏览 6485人参与
# 哪些公司校招卡第一学历 #
70316次浏览 280人参与
# 校招第一份工作你干了多久? #
95303次浏览 423人参与
# 实习如何「偷」产出? #
52878次浏览 1355人参与
# 除了主业以外,你还有哪些其他收入? #
12582次浏览 202人参与
# 不卡学历的大厂有哪些? #
30569次浏览 232人参与
# 机械人,你的第一份感谢信是谁给的 #
30605次浏览 310人参与
# 校招阶段,学历VS技术哪个更重要? #
18225次浏览 188人参与
# 职场新人体验 #
27189次浏览 250人参与
# 研究所笔面经互助 #
78582次浏览 483人参与
# 工作丧失热情的瞬间 #
294140次浏览 2372人参与
# 腾讯音乐求职进展汇总 #
98264次浏览 570人参与
# 你的秋招第一场笔试是哪家 #
148257次浏览 1485人参与
# 社恐入职新公司如何融入团队 #
12052次浏览 63人参与
# 华为开奖那些事 #
4094528次浏览 24608人参与
# 校园里的破防时刻 #
11970次浏览 128人参与
# Offer比较,你最看重什么? #
191875次浏览 1308人参与