213、【图论】有向图的完全联通(Python)

打印 上一主题 下一主题

主题 1602|帖子 1602|积分 4806

题目描述



原题链接:105. 有向图的完全联通
代码实现

  1. import collections
  2. n, k = list(map(int, input().split()))
  3. adjacency = collections.defaultdict(list)
  4. for _ in range(k):
  5.     head, tail = list(map(int, input().split()))
  6.     adjacency[head].append(tail)
  7. visited_node = set()
  8. def bfs(root, adjacency):
  9.     global visited_node
  10.     deque = collections.deque()
  11.     deque.append(root)
  12.         # 每次从队列中取出一个节点,查看邻接表中邻接的节点加入其中,进行BFS
  13.     while deque:
  14.         node = deque.popleft()
  15.         visited_node.add(node)                # 遍历过该节点则记录,最后看N个节点是否能被遍历完
  16.         for tail in adjacency[node]:
  17.             deque.append(tail)
  18.         del adjacency[node]
  19.    
  20.     return
  21. # 使用BFS从1开始遍历,如果所有节点可以被遍历完,则说明完全联通
  22. bfs(1, adjacency)
  23. if len(visited_node) == n:
  24.     print(1)
  25. else:
  26.     print(-1)
复制代码
参考文章:105.有向图的完全可达性

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农妇山泉一亩田

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表