代码随想录算法训练营第五十天|图论part1

98. 所有可达路径

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

文章讲解: 代码随想录

输入输出格式:

头文件

#include <iostream>

cin>>x;(给x,所以是向着x的)

cout<< x;(x给别人,所以是向着out的)

深度搜索三部曲:

1.确定参数

2.确定终止条件

3.处理当前节点逻辑

cpp 复制代码
#include <iostream>
#include <vector>
using namespace std;
vector<vector<int>>ans;
vector<int>path;
void dfs(vector<vector<int>>graph,int start,int end){
    if(start==end){               //终止条件
        ans.push_back(path);
        return;
    }
    for(int i=1;i<=end;i++){
        if(graph[start][i]==1){
            path.push_back(i);
            dfs(graph,i,end);    //递归
            path.pop_back();     //回溯
        }
    }
}

int main(){
    int n,m,s,t;
    cin>>n>>m;
    vector<vector<int>>graph(n+1,vector<int>(n+1,0));
    while(m--){
        cin>>s>>t;
        graph[s][t]=1;
    }
    path.push_back(1);
    dfs(graph,1,n);
    if (ans.size() == 0) cout << -1 << endl;
    for(const vector<int> &p:ans){
        for(int i=0;i<p.size()-1;i++){
            cout<<p[i]<<' ';
        }
        cout<<p[p.size()-1]<<endl;
    }
}
相关推荐
ting94520003 小时前
Humalike X Hermes 深度技术剖析:单指令注入群聊社交智能的底层架构、算法与跨 IM 平台实现
人工智能·算法·架构
吴声子夜歌3 小时前
Java面试——算法
java·算法·面试
h_a_o777oah4 小时前
【图论】Tarjan 缩点:解决有向图中环的问题
c++·算法·图论·acm·强连通分量·缩点·tarjan
Tisfy4 小时前
LeetCode 1386.安排电影院座位:哈希表+位运算
算法·leetcode·散列表·题解·哈希表
Nil2084 小时前
leetcode 199二叉树的右视图
算法·leetcode·深度优先
M78佐菲5 小时前
c语言学习笔记:排序与查找方法整理
linux·c语言·笔记·学习·算法
wWYy.6 小时前
C++与C的区别
c语言·c++
AI备案指南-满满7 小时前
人工智能拟人化互动服务安全自评估报告的评估要点有哪些?
人工智能·算法·安全·机器人·大模型备案·算法备案
LuminousCPP7 小时前
数据结构‑二叉树(二):二叉堆从零实现|Heap结构设计 + 建堆优化 + 堆排序深度解析
c语言·数据结构·笔记·二叉树