关于算法:pat-1004dfs

3次阅读

共计 380 个字符,预计需要花费 1 分钟才能阅读完成。

简略搜寻题,次要相熟 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])
正文完
 0