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

AcWing 164. 可达性统计    原题链接    中等

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


0


from collections import deque
n, m = map(int, input().split())
g = [[] for i in range(n + 1)]
din = [0] * (n + 1)
for i in range(m):
    a, b = map(int, input().split())
    g[a].append(b)
    din[b] += 1 

path = []
def topsort():
    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)
topsort()
f = [set() for i in range(n + 1)]
for i in path[::-1]:
    f[i].add(i)
    for j in g[i]:
        f[i] |= f[j]
for i in range(1, n + 1):
    print(len(f[i]))

0 评论

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

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