AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

AcWing 1191. 家谱树    原题链接    简单

作者: 作者的头像   不染是非 ,  2025-06-06 18:07:22 · 陕西 ,  所有人可见 ,  阅读 2


0


from collections import deque
n = int(input())
din = [0] * (n + 1)
dout = [0] * (n + 1)
g = [[] for i in range(n + 1)]
for i in range(1, n + 1):
    line = list(map(int, input().split()))
    for j in line[:len(line) - 1]:
        dout[i] += 1 
        din[j] += 1 
        g[i].append(j)
path = []
def bfs():
    q = deque()
    for i in range(1, n + 1):
        if din[i] == 0:
            q.append(i)
            path.append(i)
    while q:
        i = q.popleft()
        for j in g[i]:
            din[j] -= 1 
            if din[j] == 0:
                q.append(j)
                path.append(j)
bfs()
print(" ".join(map(str, path)))

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息