算法训练营|图论第一天 98. 所有可达路径

题目:所有可到达路径

题目链接:

98. 所有可达路径 (kamacoder.com)

解题思路:

邻接矩阵,注意没有result == -1时候特判

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
vector<vector<int>>result;
vector<int>path;
void dfs(vector<vector<int>>grid, int x, int n) {
	if (x == n) {
		result.push_back(path);
		return;
	}
	for (int i = 1; i <= n; i++) {
		if (grid[x][i] == 1) {
			path.push_back(i);
			dfs(grid, i, n);
			path.pop_back();
		}
	}
}
int main() {
	int n, m;
	cin >> n >> m;
	vector<vector<int>>grid(n + 1, vector<int>(n + 1, 0));
	while (m--) {
		int s, t;
		cin >> s >> t;
		grid[s][t] = 1;
	}
	path.push_back(1);
	dfs(grid, 1, n);
	if (result.size() == 0) cout << -1 << endl;
	for (int i = 0; i < result.size(); i++) {
		for (int j = 0; j < result[i].size() - 1; j++) {
			cout << result[i][j] << ' ';
		}
		cout << result[i][result[i].size() - 1]<<endl;
	}
}

邻接表的写法:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
vector<vector<int>>result;
vector<int>path;
void dfs(vector<list<int>>grid, int x, int n) {
	if (x == n) {
		result.push_back(path);
		return;
	}
	for (auto i : grid[x]) {
		path.push_back(i);
		dfs(grid, i, n);
		path.pop_back();
	}
}
int main() {
	int n, m;
	cin >> n >> m;
	vector<list<int>>grid(n + 1);
	while (m--) {
		int s, t;
		cin >> s >> t;
		grid[s].push_back(t);
	}
	path.push_back(1);
	dfs(grid, 1, n);
	if (result.size() == 0) {
		cout << -1 << endl;
	}
	for (auto path : result) {
		for (int i = 0; i < path.size() - 1; i++) {
			cout << path[i] << ' ';
		}
		cout << path[path.size() - 1] << endl;
	}
	return 0;
}
相关推荐
源代码•宸7 小时前
分布式缓存-GO(分布式算法之一致性哈希、缓存对外服务化)
开发语言·经验分享·分布式·后端·算法·缓存·golang
yongui478348 小时前
MATLAB的指纹识别系统实现
算法
高山上有一只小老虎8 小时前
翻之矩阵中的行
java·算法
jghhh018 小时前
RINEX文件进行卫星导航解算
算法
爱思德学术8 小时前
中国计算机学会(CCF)推荐学术会议-A(计算机科学理论):LICS 2026
算法·计算机理论·计算机逻辑
CVHub8 小时前
多模态图文训推一体化平台 X-AnyLabeling 3.0 版本正式发布!首次支持远程模型推理服务,并新增 Qwen3-VL 等多款主流模型及诸多功能特性,等
算法
hoiii1878 小时前
MATLAB实现Canny边缘检测算法
算法·计算机视觉·matlab
qq_430855889 小时前
线代第二章矩阵第四课:方阵的幂
算法·机器学习·矩阵
roman_日积跬步-终至千里9 小时前
【计算机设计与算法-习题2】动态规划应用:矩阵乘法与钢条切割问题
算法·矩阵·动态规划
kupeThinkPoem9 小时前
计算机算法导论第三版算法视频讲解
数据结构·算法