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

算法训练营64-图论-深度优先优先搜索(dfs)-广度优先搜索(bfs)

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

邻接矩阵表示图

#include<bits/stdc++.h>using namespace std;vector<vector<int>> reslut;
vector<int> path;void dfs(vector<vector<int>>& map, int start, int end) {if(start == end) {reslut.push_back(path);return;}for(int i = 1;i < map.size();i++) {if(map[start][i] == 1) {path.push_back(i);dfs(map, i, end);path.pop_back();}}
}int main() {int n, m;cin >> n >> m;vector<vector<int>> map(n + 1, vector<int>(n + 1, 0));for(int i = 0;i < m;i++) {int x,y;cin >> x >> y;map[x][y] = 1;}path.push_back(1);dfs(map, 1, n);if(reslut.size() == 0) cout << -1 << endl;else {for(int i = 0;i < reslut.size();i++) {for(int j = 0;j < reslut[i].size() - 1;j++) {cout << reslut[i][j] << ' ';}cout << reslut[i][reslut[i].size() - 1] << endl;}}return 0;
}

邻接表表示图:

#include <iostream>
#include <vector>
#include <list>using namespace std;vector<vector<int>> result;
vector<int> path;void dfs(vector<list<int>>& map, int x, int n) {if(x == n) {result.push_back(path);return;}for(int i : map[x]) {path.push_back(i);dfs(map, i, n);path.pop_back();}
}int main() {int n, m, x, y;cin >> n >> m;vector<list<int>> graph(n + 1);while(m--) {cin >> x >> y;graph[x].push_back(y);}path.push_back(1);dfs(graph, 1, n);if(result.size() == 0) cout << -1 << endl;else {for(int i = 0;i < result.size();i++) {int size = result[i].size();for(int j = 0;j < size - 1;j++) {cout << result[i][j] << ' ';}cout << result[i][size - 1] << endl;}        }return 0;
}

http://www.lryc.cn/news/383837.html

相关文章:

  • kotlin函数
  • 深入理解计算机系统 CSAPP 家庭作业7.12
  • Batch脚本中的环境变量沙盒:setlocal与endlocal全解析
  • AI引领创意潮流:高效生成图片,参考图助力,一键保存到指定文件夹
  • ADOP带你了解:数据中心的高速互联解决方案
  • 使用SpringBoot整合Servlet
  • vue引入eachrts
  • c++ 智能指针实战分析
  • 3D Web轻量引擎HOOPS Web Platform赋能AEC行业数字化,高效渲染与多格式支持!
  • 学术英语写作为什么会成为留学生的压力?
  • docker 安装达梦8
  • npm常用命令大全(非常详细)
  • 东西方文化与管理探讨汉捷咨询汉捷咨询
  • 行业案例 | 智能终端设备的数据基础从哪儿来?
  • 《Windows API每日一练》6.1 鼠标基础知识
  • 闹大了!OpenAI 宣布终止提供API服务
  • java里的空接口实现它有什么用?
  • Spring的jar包下载(最新版6.0版本)
  • 解决Java中数据库连接泄露的技术
  • 网页视频录制,分享3种好方法
  • LeNet网络的实现
  • 华为HCIP Datacom H12-821 卷6
  • 深入理解SQL优化:理论与实践的结合
  • PostgreSQL 高级功能与扩展(九)
  • 【LinuxC语言】UDP数据收发
  • 【深度学习驱动流体力学】计算流体力学openfoam-paraview与python3交互
  • EWM学习之旅-1-EWM100
  • qt中的枚举值-QMetaEnum
  • 这才是CSDN最系统的网络安全学习路线(建议收藏)
  • 微软Edge浏览器多用户配置文件管理:个性化浏览体验