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

相关推荐
超自然祈祷1 天前
水声相关公式C++实现
开发语言·c++
淼淼7631 天前
QT表格与数据
开发语言·qt
smile_Iris1 天前
Day 38 GPU训练及类的call方法
开发语言·python
嗷嗷哦润橘_1 天前
AI Agent学习:MetaGPT项目之RAG
人工智能·python·学习·算法·deepseek
Smart-Space1 天前
tkinter绘制组件(47)——导航边栏
python·tkinter·tinui
认真敲代码的小火龙1 天前
【JAVA项目】基于JAVA的养老院管理系统
java·开发语言·课程设计
AI科技星1 天前
统一场论质量定义方程:数学验证与应用分析
开发语言·数据结构·经验分享·线性代数·算法
扶苏-su1 天前
Java---事件处理机制
java·开发语言
ULTRA??1 天前
KD-Tree的查询原理
python·算法
小灰灰搞电子1 天前
Qt 实现炫酷锁屏源码分享
开发语言·qt·命令模式