简略搜寻题,次要相熟 python 语法。
通过字典,一个父结点对应多个儿子结点,进行贮存。
代码:
mp={}
mm=0# 记录最大层数
record=[0 for i in range(101)]
def dfs(s,level):
global mm
if level>mm:
mm=level
if s not in mp:# 没得儿子的
record[level]+=1
return
for i in mp[s]:
dfs(i,level+1)
n,m=map(int,input().split())
if n==0:
exit()
for i in range(m):
s=input().split()
fa=s[0]
mp[fa]=[]
for j in s[2:]:
mp[fa].append(j)
dfs("01",0)
for i in range(mm):
print(record[i],end=" ")
print(record[mm])