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.有向图的完全可达性

相关推荐
小短腿的代码世界13 小时前
Qt序列化与持久化深度解析:从QDataStream到自定义二进制协议
开发语言·数据库·qt
周末也要写八哥13 小时前
Golang语言与Rust语言的对比
开发语言·后端·golang
楼田莉子13 小时前
Linux网络:数据链路层
linux·服务器·开发语言·网络·c++·后端
chushiyunen13 小时前
npy文件笔记
笔记·python
念恒1230613 小时前
Python(列表入门)
python·学习
不甘先生14 小时前
Go 四层架构实战:Handler + Service + Repository + Entity(清晰、可控、可演进)
开发语言·架构·golang
Yang-Never14 小时前
Git -> Git Worktree 工作树
android·开发语言·git·android studio
zjy2777714 小时前
Go语言怎么用GitHub Actions_Go语言GitHub Actions教程【基础】
jvm·数据库·python
2301_7820404514 小时前
如何实现SQL用户行为追踪_通过触发器记录操作明细
jvm·数据库·python
riNt PTIP14 小时前
GO 快速升级Go版本
开发语言·redis·golang