代码随想录算法训练营第五十天|图论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;
    }
}
相关推荐
玖釉-10 小时前
二叉树展开为链表:从先序遍历到原地指针重排
c++·windows·算法·leetcode·链表
05候补工程师10 小时前
【408考研·数据结构专题】二叉树、树与森林、线索树及哈夫曼树核心考点与秒杀技巧深度总结
数据结构·经验分享·笔记·考研·算法
吃好睡好便好10 小时前
矩阵的加减运算
开发语言·人工智能·学习·线性代数·算法·matlab·矩阵
吃好睡好便好11 小时前
提取矩阵特定多行元素
开发语言·线性代数·算法·matlab·矩阵
葫三生11 小时前
多模态视角下的一部当代东方创世史诗 ——《论三生原理》?(扩版)
人工智能·科技·算法·机器学习·开源
stsdddd11 小时前
【YOLO算法包裹背包行李箱塑料袋包装纸盒快递盒带目标检测数据集】
算法·yolo·目标检测
洛水水11 小时前
【力扣100题】52.最小路径和
算法·leetcode
快手技术11 小时前
将DSA注意力引入多模态,快手Keye2.0开启强化推理新范式
算法
码之气三段.11 小时前
牛客周赛 Round 145-E(写了200行的史山)
算法·深度优先
Hwang25211 小时前
Attention-04-decoder部分
算法