当前位置: 首页 > news >正文

图论 | 98. 所有可达路径

98. 所有可达路径

题目链接: 98. 所有可达路径

思路

  1. 先创建邻接矩阵,再深搜
  2. 写代码是需要注意的是acm格式,输入的格式要转化为int,输出要转化为str,用map()实现。

dfs

def dfs(grid,node,n,path,res):
    if node == n:
        res.append(path[:])
        return
    for j in range(len(grid[0])):
        if grid[node-1][j] == 1:
            path.append(j+1)
            dfs(grid,j+1,n,path,res)
            path.pop()

def main():
    # 构造邻接矩阵
    n,m = map(int,input().split())
    grid = [[0]*n for _ in range(n)]
    for _ in range(m):
        node1,node2 = map(int,input().split())
        grid[node1-1][node2-1] = 1

    res = []
    dfs(grid,1,n,[1],res)
    if not res:
        print(-1)
    else:
        for path in res:
            print(' '.join(map(str,path)))
    

if __name__ == "__main__":
    main()  

相关文章:

  • 机器学习、深度学习解决方案设计方案通用审核流程(solution architect review)
  • 从扩展黎曼泽塔函数构造物质和时空的结构-5
  • 【页面组件】——1
  • 使用DeepSeek进行审稿和反馈审稿意见相关流程和提示词分享
  • 【算法】常见排序算法(插入排序、选择排序、交换排序和归并排序)
  • LLM之RAG理论(十四)| RAG 最佳实践
  • Pi型隶属函数(Π-shaped Membership Function)的详细介绍及python示例
  • 2025年3月 CCF GESP C++ 二级 真题解析
  • 仅靠prompt,Agent难以自救
  • DeepSeek,PowerBI一般有哪些问题?
  • 操作系统导论——第13章 抽象:地址空间
  • 【笔记分享】NCS/Zephyr USB MSC实现方法介绍
  • 每日一题第15届蓝桥杯c/c++本科B组省赛第3题
  • 【笔记分享】nRF54H20 SPI速率范围记录
  • 【数理基础】【高等代数】高等代数本科课程总结、资料汇总、个人理解
  • Quartz.NET 核心功能与应用解析
  • Java中synchronized 和 Lock
  • 数据可视化在商业智能中的应用:从数据到洞察的桥梁
  • LINUX基础IO [六] - 文件理解与操作
  • Centos7搭建Zabbix4.x监控HCL模拟网络设备:zabbix-server搭建及监控基础04
  • 音著协宣布胜诉,虎牙公司终审被判侵权
  • 无人机企业从科技园区搬到乡村后,村子里变得不一样了
  • 人民日报评论员:党政机关要带头过紧日子
  • 一女游客在稻城亚丁景区因高反去世,急救两个多小时未能恢复生命体征
  • 上海虹桥国际咖啡文化节周五开幕,来看Coffeewalk通关攻略
  • 公元1058年:柳永词为什么时好时坏?