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

题目描述


原题链接:105. 有向图的完全联通

代码实现

python 复制代码
import collections

n, k = list(map(int, input().split()))
adjacency = collections.defaultdict(list)
for _ in range(k):
    head, tail = list(map(int, input().split()))
    adjacency[head].append(tail)

visited_node = set()

def bfs(root, adjacency):
    global visited_node

    deque = collections.deque()
    deque.append(root)

	# 每次从队列中取出一个节点,查看邻接表中邻接的节点加入其中,进行BFS
    while deque:
        node = deque.popleft()
        visited_node.add(node)		# 遍历过该节点则记录,最后看N个节点是否能被遍历完

        for tail in adjacency[node]:
            deque.append(tail)

        del adjacency[node]
    
    return 

# 使用BFS从1开始遍历,如果所有节点可以被遍历完,则说明完全联通
bfs(1, adjacency)
if len(visited_node) == n:
    print(1)
else:
    print(-1)

参考文章:105.有向图的完全可达性

相关推荐
Learner7 分钟前
Python数据类型(四):字典
python
odoo中国1 小时前
Odoo 19 模块结构概述
开发语言·python·module·odoo·核心组件·py文件按
Jelena157795857921 小时前
Java爬虫api接口测试
python
代码N年归来仍是新手村成员1 小时前
【Java转Go】即时通信系统代码分析(一)基础Server 构建
java·开发语言·golang
踩坑记录2 小时前
leetcode hot100 3.无重复字符的最长子串 medium 滑动窗口(双指针)
python·leetcode
Z1Jxxx2 小时前
01序列01序列
开发语言·c++·算法
沐知全栈开发2 小时前
C语言中的强制类型转换
开发语言
关于不上作者榜就原神启动那件事2 小时前
Java中大量数据Excel导入导出的实现方案
java·开发语言·excel
坚定学代码2 小时前
基于观察者模式的ISO C++信号槽实现
开发语言·c++·观察者模式·ai
Wang's Blog3 小时前
Nodejs-HardCore: Buffer操作、Base64编码与zlib压缩实战
开发语言·nodejs