代码编织梦想

卡码网刷题链接:98. 所有可达路径

一、题目简述

二、编程demo

方法①邻接矩阵

from collections import defaultdict
#简历邻接矩阵
def build_graph(): 
    n, m = map(int,input().split()) 
    graph = [[0 for _ in range(n+1)] for _ in range(n+1)]
    for _ in range(m): 
        i,j = map(int,input().split()) 
        graph[i][j] = 1
    return graph,n
#深度优先搜索
def dfs(g,r,i,end,path):
    if i == end:
        r.append(path.copy())
        return 
    for k in range(1,end+1):
        if g[i][k]:
            path.append(k)
            dfs(g,r,k,end,path)
            path.pop()
    return 
#主函数
def main():
    graph,n = build_graph()
    result = []
    path = [1]
    dfs(graph,result,1,n,path)
    #按格式打印输出
    if not result:
        print(-1)
    for p in result:
        print(" ".join(map(str,p)))
    return 
if __name__ == "__main__":
    main()

方法②邻接表

from collections import defaultdict
def build_graph(): 
    n, m = map(int,input().split()) 
    graph = defaultdict(list) 
    for _ in range(m): 
        i,j = map(int,input().split()) 
        graph[i].append(j)
    return graph,n

def dfs(g,r,i,end,path):
    if i == end:
        r.append(path.copy())
        return 
    for k in g[i]:
        path.append(k)
        dfs(g,r,k,end,path)
        path.pop()
    return 

def main():
    graph,n = build_graph()
    result = []
    path = [1]
    dfs(graph,result,1,n,path)
    if not result:
        print(-1)
    for p in result:
        print(" ".join(map(str,p)))
    return 
if __name__ == "__main__":
    main()

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38742161/article/details/144066212

acm 图论入门题(附代码解释)_spongebob_y的博客-爱代码爱编程

目录 HDU 1869 六度分离 HDU 1874 畅通工程续 (最短路) HDU 3339 In Action (最短路+01背包) HDU 1162 Eddy's picture(prime算法) HDU 1863 畅通工程 (最小生成树)  HDU 1301 Jungle Roads (最小生成树) POJ 3522 Slim Span

图论入门-爱代码爱编程

图论入门 图的建立与存储 邻接表 vector实现邻接表 邻接表是面向边的数据结构,所以需要边的内容用一个结构体*存储* 关于vector 1、创建vector对象 vector<int> vec; 2、插入 vec.insert(); 3、删除 vec.erase(); 4、尾部插入 vec.push_back(); 5、清空 v

图论基础算法-爱代码爱编程

labuladong算法学习 笔记(公众号:labuladong) 此篇笔记包含以下内容 一、图 - 高级的多叉树二、判断有向图是否存在环三、拓扑排序四、二分图五、Union-Find 并查集算法六、最小生成树 – Kruskal 算法七、名流问题 图 - 高级的多叉树 1. 图的实现 邻接表很直观,我把每个节点x的邻居都存到一个列表里,

入门级图论算法:洪水填充算法-爱代码爱编程

洪水填充算法_洪水填充(Flood fill)算法 洪水填充算法_洪水填充(Flood fill)算法_滨封的博客-CSDN博客 洪水覆盖算法(Flood Fill):颜色填充 洪水覆盖算法(Flood Fill):颜色填充_风口IT猪的成长录-CSDN博客_floodfill如何填充封闭图形 C和C ++中的洪水填充算法 C和C ++中

图论入门指南:编程中的图论应用_心之执着的博客-爱代码爱编程

图论是计算机科学中的一个重要领域,它研究的是图(Graph)这种数据结构及其相关的算法和应用。在编程中,图论有着广泛的应用,用于解决各种实际问题,如网络分析、社交网络分析、路径规划等。本文将介绍图论的基本概念,并提供一些示例

真题-爱代码爱编程

  目录   GC.2022.五年级.01.拍7 输入数据 1 输出数据 1  GC.2022.五年级.02.硬币 输入数据 1 输出数据 1  答案: GC.2022.五年级.03.次大公约数 输入数据 1 输出数据 1 GC.2022.五年级.04.显示器 输入数据 1 输出数据 1  GC.2022.五年级.05.数对

算法模板1:排序+二分+高精度+前缀+差分-爱代码爱编程

文章目录 1.1 排序STL sort函数快速排序算法模板归并排序算法模板 1.2 二分整数二分算法模板浮点数二分算法模板 1.3 高精度高精度加法高精度减法高精度乘低精度高精度除以低精度

代码随想录算法训练营day46|动态规划09-爱代码爱编程

买卖股票的最佳时机四 之前是最多只能完成两笔交易,现在是至多可以买卖k次,那么状态数需要定为2*k+1种,此时,就要分析多种情况的递推式 找到奇偶数交替的规则即可 class Solution { public:

3381:【例66.1】 图论入门(编程启蒙)_一本通启蒙题解 3381:【例66.1】 图论入门 时间限制: 1000 ms 内存限制: 6553-爱代码爱编程

#include <iostream> using namespace std; int main(){ int a[1005][1005],n,m,s=0,sum=0,b; cin >> n >> m; for(int i = 1;i<=n;i++){ for(int j

图论入门书籍(2024.11.16)_图论相关书籍-爱代码爱编程

1、我的第一本算法书(2018年11月) 2、程序员的数学4:图论入门(图灵出品) 3、图论入门 [Graphs:An Introduction](2022.09) 4、啊哈!算法  啊哈算法系列(C语言、python、Java ) 啊哈算法系列(C语言、python、Jav

3381:【例66.1】 图论入门-爱代码爱编程

3381:【例66.1】 图论入门 信息学奥赛一本通-编程启蒙(C++版)在线评测系统 [例 66.1] 图论入门 信息学奥赛一本通-编程启蒙(C++版)在线评测系统 信息学奥赛一本通-编程启蒙3381:【例66.1】 图论入门 https://www.douyin.com/video/72970873

树链剖分(重链剖分)-爱代码爱编程

树链剖分的核心思想就是将一棵树剖分成一条一条的链 因为树不好处理 但链比较好处理 为了学会它 我们先要学会树上dfs(深度优先搜索) 然后就没了(雾) Because 树链剖分需要用到两个dfs 哦对了 我们还要了解以下的知识点 1.子树大小 就是一个节点的子树的节点个数(包括它自己) 2.重儿子 一个节点的所有儿子中子树大小最大的儿子

2024算法基础公选课练习五(dfs2)-爱代码爱编程

一、前言 因为此次题目较多,我也不想分成两篇博客来发,我就直接给代码了,如果题目有需要强调的地方再特殊说明 二、题目总览 三、具体题目 3.1 问题 A: 勘探油田 我的代码 8方向的flood fill模型 #include <bits/stdc++.h> using i64 = long long; constexpr

图论基础知识-爱代码爱编程

图论基础知识 什么是图论? 图论(Graph Theory)是研究图(Graph)的数学分支,主要研究点和边之间的关系。在计算机科学、网络设计、生物信息学等领域中,图论有广泛的应用。 图的基本定义 图 (Graph

代码随想录算法训练营第五十八天|day58 图论-爱代码爱编程

拓扑排序精讲 https://www.programmercarl.com/kamacoder/0117.%E8%BD%AF%E4%BB%B6%E6%9E%84%E5%BB%BA.html 拓扑排序的背景 本题是拓扑排序的经典题目。 一聊到 拓扑排序,一些录友可能会想这是排序,不会想到这是图论算法。