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 分钟前
Python进阶-深浅拷贝辨析
开发语言·python
时寒的笔记2 分钟前
js逆向7_案例惠nong网
android·开发语言·javascript
Thomas.Sir13 分钟前
重构诊疗效率与精准度之【AI 赋能临床诊断与辅助决策从理论到实战】
人工智能·python·ai·医疗·诊断
V胡桃夹子19 分钟前
pyenv-win 完整安装+使用手册
python·pyenv
Evand J19 分钟前
【MATLAB例程】基于低精度IMU、GNSS的UAV初始航向(三维角度)校准的仿真,包含卡尔曼滤波、惯导解算与校正
开发语言·matlab·gnss·imu·卡尔曼滤波
ego.iblacat24 分钟前
Python 连接 MySQL 数据库
数据库·python·mysql
feng_you_ying_li25 分钟前
c++之哈希表的介绍与实现
开发语言·c++·散列表
网域小星球32 分钟前
C 语言从 0 入门(十四)|文件操作:读写文本、保存数据持久化
c语言·开发语言·文件操作·fopen·fprintf
网域小星球35 分钟前
C 语言从 0 入门(七)|字符数组与字符串完整精讲|VS2022 高质量实战
c语言·开发语言·字符串·vs2022·字符数组
Jia ming42 分钟前
C语言实现日期天数计算
c语言·开发语言·算法