代码随想录算法训练营第五十六天|KMC98 所有可达路径

接下来进入图论环节。需要掌握一定图论基础,有向无向,连接矩阵等。

题1:

指路:98. 所有可达路径 (kamacoder.com)
思路与代码:
1.邻接矩阵

本题我们尝试用深搜解决。首先确定递归函数及参数,定义一个dfs函数和变量x,分别用来遍历图和节点。将终点设为n,当x==n时表示遍历到了终点,发现了一条路径,那么这就是终止条件。其次需要处理从目前搜索节点i出发的路径,将遍历到的节点加入到路径,随后遍历下一个节点,最后回溯处理本次添加的节点。代码如下:

#include<iostream>
#include<vector> 
using namespace std;
vector<vector<int>> result;  // 收集符合条件的路径
vector<int> path;  // 1节点到终点的路径void dfs (const vector<vector<int>>& graph, int x, int n) {// 当前遍历到的节点x,到达节点nif (x == n) {  // 找到了符合条件的路径result.push_back(path);  // 入结果集return ;}for (int i = 1; i <= n; i++) {if (graph[x][i] == 1) {  // 找到x连接的节点path.push_back(i);  // 遍历到的节点加入到路径dfs(graph, i, n);  // 进入下一层递归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);  // 从0出发dfs(graph, 1, n);  // 开始遍历//if (result.size() == 0) cout << -1 << endl;for (const vector<int>& pa : result) {for (int i = 0; i < pa.size() - 1; i++) {cout << pa[i] << " ";}cout << pa[pa.size() - 1] << endl;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/39331.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux服务器集群搭建

Linux服务器搭建 配置网络和主机名 查看虚拟机虚拟网卡ip信息 在NAT设置中查看网关地址 具体的ip根据网关网段设置 设置root账户密码&#xff0c;越简单越好 修改网卡信息 修改网卡配置&#xff0c;改成静态ip的方式 修改ip为静态方式 修改过后重启网卡服务 关闭防火墙…

如何选择品牌推广公司?哪家好?收费标准及评价!

不管是什么品牌&#xff0c;推广对公司的成败起了很关键的作用。然而&#xff0c;面对市面上琳琅满目的品牌推广公司&#xff0c;如何选择一家既熟悉又靠谱的公司&#xff0c;成为许多企业主面临的难题。 作为一家手工酸奶品牌的创始人&#xff0c;目前全国也复制了100多家门店…

深度探索“目录名称无效“:原因、解决方案与最佳实践

目录名称无效&#xff1a;现象背后的秘密 在日常使用电脑或移动设备时&#xff0c;我们时常会遇到“目录名称无效”的错误提示&#xff0c;这一提示仿佛是一道无形的屏障&#xff0c;阻断了我们与重要数据的联系。从本质上讲&#xff0c;“目录名称无效”意味着系统无法识别或…

Windows下快速安装Open3D-0.18.0(python版本)详细教程

目录 一、Open3D简介 1.1主要用途 1.2应用领域 二、安装Open3D 2.1 激活环境 2.2 安装open3d 2.3测试安装是否成功 三、测试代码 3.1 代码 3.2 显示效果 一、Open3D简介 Open3D 是一个强大的开源库&#xff0c;专门用于处理和可视化3D数据&#xff0c;如点云、网格和…

Android原生与flutter模块交互

Flutter定义了三种不同类型的Channel&#xff1a; BasicMessageChannel&#xff1a;用于传递字符串和半结构化的信息&#xff0c;持续通信&#xff0c;收到消息后可以回复此次消息&#xff0c;如&#xff1a;Native将遍历到的文件信息陆续传递到Dart&#xff0c;在比如&#xf…

无法下载 https://mirrors./ubuntu/dists/bionic/main/binary-arm64/Packages

ubuntu系统执行sudo apt update命令的时候&#xff0c;遇到如下问题&#xff1a; 忽略:82 https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-backports/universe arm64 Packages 错误:81 https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-backports/main arm64 Packa…

Echarts-饼图

1.案例一 1.1代码 option = { "color":[#3398DB, #FF6347],// 设置整个图表的颜色"title": {//dynamic属性,用于表示标题是否含有动态属性,若有,则使用data-fetch获取动态的标题,此时的text的值为data-fetch的keyword,列名只能为text"dynamic&quo…

springboot数字化医院产科系统源码

目录 一、系统概述 二、开发环境 三、功能设计 四、功能介绍 一、系统概述 数字化产科是为医院产科量身定制的信息管理系统。它管理了孕妇从怀孕开始到生产结束42天一系列医院保健服务信息。该系统由门诊系统、住院系统、数据统计模块三部分组成&#xff0c;与医院HIS、LI…

VMware Mac/Win 虚拟机软件介绍

VMware作为全球领先的虚拟化技术提供商&#xff0c;其Mac/Win虚拟机软件为用户带来了前所未有的跨平台操作体验。这款软件凭借其强大的功能和稳定的性能&#xff0c;成为了众多开发者、设计师、企业用户以及个人用户的首选工具。 强大的多操作系统支持 VMware Mac/Win 虚拟机…

轻松创建对象——简单工厂模式(Python实现)

1. 引言 大家好&#xff0c;又见面了&#xff01;今天我们要聊的是设计模式中的“万能钥匙”——简单工厂模式。想象一下&#xff0c;如果每次你都得亲自动手创建各种对象&#xff0c;不仅累得像个陀螺&#xff0c;还可能搞得一团糟。别怕&#xff0c;简单工厂模式来拯救你&am…

2024年创业新商机组合拳“消费增值+二二复制”引流拓客新思路

文丨微三云胡佳东&#xff0c;点击上方“关注”&#xff0c;为你分享市场商业模式电商干货。 - 引言&#xff1a;2024年各行各业面临企业经营瓶颈难的一年&#xff0c;国家也陆续推出了《关于打造消费新场景培育消费新增长点的措施》都是为了培育和壮大消费新增长点&#xff…

MySQL生成日期维度表

1、通过存储过程生成 DELIMITER $$ CREATE PROCEDURE dateDim(startDate DATE, endDate DATE) BEGIN DECLARE currentDate DATE; SET currentDate startDate; WHILE currentDate < endDate DO INSERT INTO sys_calendar (stats_day) VALUES (currentDate); SET cur…

怎样恢复数据?电脑数据恢复方法详解!

在日常使用电脑或移动设备时&#xff0c;我们难免会遇到数据丢失的情况&#xff0c;如误删除文件、存储设备故障等。数据恢复成了许多人迫切需要解决的问题。本文将为您介绍几种高效的数据恢复方法&#xff0c;帮助您轻松找回丢失的文件。 一、了解数据丢失的原因 在恢复数据…

数据文件传输连接超时?镭速教你如何解决!

Mysql作为一个广泛使用的开源关系型数据库管理系统&#xff0c;以快速、可靠、易于使用、开源的特色闻名&#xff0c;使用 MySQL 来存储和管理数据&#xff0c;已经广泛应用于各个领域、各类大小型应用中。 图片源于网络 使用 MySQL 来存储和管理数据的应用中&#xff0c;与数…

关于 element-ui el-cascader 数据回显问题的解决方案

前言 这两天在使用 el-cascader 控件时&#xff0c;后端日期的数据如“2023-05-06”前端需要按照“年-月-日”的形式分割成三级联动&#xff0c;因为数据库保存的是完整的日期&#xff0c;前端数据回显时需要对后端返回的数据进行处理。 问题再现 联动下拉框的数据如下&#x…

【操作系统】进程管理——线程管理(个人笔记)

学习日期&#xff1a;2024.7.2 内容摘要&#xff1a;线程的概念、存在的意义、线程的属性&#xff0c;线程的实现方式&#xff0c;线程的状态与组织。 线程的概念 拿QQ来说&#xff0c;QQ既可以打视频电话&#xff0c;也可以在这同时进行文字聊天或传送文件&#xff0c;进程是…

零信任沙箱在数据安全领域的意义

在当今日益复杂的网络安全环境中&#xff0c;零信任沙箱作为一种前沿的安全防护技术&#xff0c;受到了广泛关注。而SDC沙箱作为零信任沙箱领域的佼佼者&#xff0c;凭借其独特的技术优势和卓越的价值&#xff0c;为企业和组织提供了强大的数据安全保障。本文将深入探讨SDC沙箱…

匿名函数return lambda t

在代码片段中&#xff0c;return lambda t: t * theta 的含义是返回一个匿名函数&#xff08;也叫 lambda 函数&#xff09;。这个匿名函数接收一个参数 t&#xff0c;并返回 t * theta 的值。下面是一个详细的解释&#xff1a; 解释 定义函数 f&#xff1a; def f(theta):ret…

分子AI预测赛Task1笔记

分子AI预测赛Task1笔记 实践步骤&#xff1a;跑通baseline → 尝试个人idea→尝试进阶baseline 一、跑通baseline 1、应当先下载数据库 下载相应的数据库 !pip install lightgbm openpyxl2、训练模型并预测结果 首先要导入相应的库和方法类&#xff0c;如pandas等 # 1. …

【postgresql】数据库操作

创建数据库 使用 CREATE DATABASE SQL 语句来创建 语法&#xff1a; CREATE DATABASE dbname; 使用 createdb 命令来创建 语法&#xff1a; createdb [option...] [dbname [description]] 参数说明&#xff1a; dbname&#xff1a;要创建的数据库名。 description&…