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

Python:每日一题之发现环(DFS)

题目描述

小明的实验室有 N 台电脑,编号 1⋯N。原本这 N 台电脑之间有 N−1 条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。

不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了 BUG。

为了恢复正常传输。小明需要找到所有在环路上的电脑,你能帮助他吗?

输入描述

输入范围:

第一行包含一个整数 N 。

以下 N 行每行两个整数 a,b,表示 a 和 b 之间有一条数据链接相连。

其中, 1≤N≤10^5,1≤a,b≤N。

输入保证合法。

输出描述

按从小到大的顺序输出在环路上的电脑的编号,中间由一个空格分隔。

输入输出样例

示例

输入

5
1 2
3 1
2 4
2 5
5 3

输出

1 2 3 5

 思路:

正常链接状态:
        1、树状连接网络每个节点只有一个父节点
        2、若一个父节点的子节点被发现已经标记,则该子节点一定在环上
深度优先搜索过程中查找已经标记的点

参考代码:

N = int(input())
edge = [[] for i in range(N+1)] #邻接表
pre = [0] * (N+1)
ring = []  #保存以后的节点
vis = [False] * (N+1)
for i in range(N):u, v = map(int, input().split())edge[u].append(v)edge[v].append(u)def dfs(x,father):  # x 表示当前节点,father表示父亲节点vis[x] = True   #标记for son in edge[x]: # son 子节点if len(ring) > 0: #是否被标记returnif not vis[son]: #判断子节点是否访问过pre[son] = x   #父节点等于当前节点dfs(son, x)   elif son != father: #子节点不等于父亲节点tmp = xwhile tmp != son:ring.append(tmp)tmp = pre[tmp]ring.append(son)
dfs(1, 0)
ring.sort()
for k in ring: print(k,end=' ')

相关文章:

Python:每日一题之发现环(DFS)

题目描述 小明的实验室有 N 台电脑,编号 1⋯N。原本这 N 台电脑之间有 N−1 条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。 不过在最近一次维护网络时,管理员误操作使得某两台电脑之间…...

C++设计模式(14)——享元模式

亦称: 缓存、Cache、Flyweight 意图 享元模式是一种结构型设计模式, 它摒弃了在每个对象中保存所有数据的方式, 通过共享多个对象所共有的相同状态, 让你能在有限的内存容量中载入更多对象。 问题 假如你希望在长时间工作后放…...

SpringCloud之Eureka客户端服务启动报Cannot execute request on any known server解决

项目场景: 在练习SpringCloud时,Eureka客户端(client)出现报错:Cannot execute request on any known server 问题描述 正常启动SpringCloud的Server端和Client端,结果发现Server端的控制台有个Error提示,如下&#…...

从零开始搭建kubernetes集群环境(虚拟机/kubeadm方式)

文章目录1 Kubernetes简介(k8s)2 安装实战2.1 主机安装并初始化2.2 安装docker2.3 安装Kubernetes组件2.4 准备集群镜像2.5 集群初始化2.6 安装flannel网络插件3 部署nginx 测试3.1 创建一个nginx服务3.2 暴漏端口3.3 查看服务3.4 测试服务1 Kubernetes简…...

【零基础入门前端系列】—表格(五)

【零基础入门前端系列】—表格(五) 一、表格 表格在数据展示方面非常简单,并且表现优秀,通过与CSS的结合,可以让数据变得更加美观和整齐。 单元格的特点:同行等高、同列等宽。 表格的基本语法&#xff1…...

C#开发的OpenRA的只读字典IReadOnlyDictionary实现

C#开发的OpenRA的只读字典IReadOnlyDictionary实现 怎么样实现一个只读字典? 这是一个高级的实现方式,一般情况下,开发人员不会考虑这个问题的。 毕竟代码里,只要小心地使用,还是不会出问题的。 但是如果在一个大型的代码,或者要求比较严格的代码里,就需要考虑这个问题了…...

mulesoft MCIA 破釜沉舟备考 2023.02.14.06

mulesoft MCIA 破釜沉舟备考 2023.02.14.06 1. A company is planning to extend its Mule APIs to the Europe region.2. A mule application is deployed to a Single Cloudhub worker and the public URL appears in Runtime Manager as the APP URL.3. An API implementati…...

Python网络爬虫 学习笔记(1)requests库爬虫

文章目录Requests库网络爬虫requests.get()的基本使用框架requests.get()的带异常处理使用框架(重点)requests库的其他方法和HTTP协议(非重点)requests.get()的可选参数网络爬虫引发的问题(非重点)常见问题…...

Splay

前言 Splay是一种维护平衡二叉树的算法。虽然它常数大,而且比较难打,但Splay十分方便,而且LCT需要用到。 约定 cnticnt_icnti​:节点iii的个数 valival_ivali​:节点iii的权值 sizisiz_isizi​:节点iii的子…...

智能网联汽车ASIL安全等级如何划分

目录一、功能安全标准二、功能安全等级定义三、危险事件的确定四、ASIL安全等级五、危险分析和风险评定六、功能安全目标的分解一、功能安全标准 ISO 26262《道路车辆功能安全》脱胎于IEC 61508《电气/电子/可编程电子安全系统的功能安全》,主要定位在汽车行业&…...

Stable Diffusion 1 - 初始跑通 文字生成图片

文章目录关于 Stable DiffusionLexica代码实现安装依赖库登陆 huggingface查看 huggingface token下载模型计算生成设置宽高测试迭代次数生成多列图片关于 Stable Diffusion A latent text-to-image diffusion model Stable Diffusion 是一个文本到图像的潜在扩散模型&#xff…...

【cuda入门系列】通过代码真实打印线程ID

【cuda入门系列】通过代码真实打印线程ID1.gridDim(6,1),blockDim(4,1)2.gridDim(3,2),blockDim(2,2)【cuda入门系列之参加CUDA线上训练营】在Jetson nano本地跑 hello cuda! 【cuda入门系列之参加CUDA线上训练营】一文认识cuda基本概念 【cuda入门系列之参加CUDA线…...

【Python语言基础】——Python NumPy 数据类型

Python语言基础——Python NumPy 数据类型 文章目录 Python语言基础——Python NumPy 数据类型一、Python NumPy 数据类型一、Python NumPy 数据类型 Python 中的数据类型 默认情况下,Python 拥有以下数据类型: strings - 用于表示文本数据,文本用引号引起来。例如 “ABCD”…...

数据工程师需要具备哪些技能?

成为数据工程师需要具备哪些技能?数据工程工作存在于各个行业,在银行业、医疗保健业、大型科技企业、初创企业和其他行业找到工作机会。许多职位描述要求数据工程师、拥有数学或工程学位,但如果有合适的经验学位往往没那么重要。 大数据开发…...

Cosmos 基础 -- Ignite CLI(二)Module basics: Blog

一、快速入门 Ignite CLI version: v0.26.1 在本教程中,我们将使用一个模块创建一个区块链,该模块允许我们从区块链中写入和读取数据。这个模块将实现创建和阅读博客文章的功能,类似于博客应用程序。最终用户将能够提交新的博客文章&#x…...

Quartz 快速入门案例,看这一篇就够了

前言 Quartz 是基于 Java 实现的任务调度框架,对任务的创建、修改、删除、触发以及监控这些操作直接提供了 api,这意味着开发人员拥有最大的操作权,也带来了更高的灵活性。 什么是任务调度? 任务调度指在将来某个特定的时间、固…...

图解LeetCode——1233. 删除子文件夹(难道:中等)

一、题目 你是一位系统管理员,手里有一份文件夹列表 folder,你的任务是要删除该列表中的所有 子文件夹,并以 任意顺序 返回剩下的文件夹。 如果文件夹 folder[i] 位于另一个文件夹 folder[j] 下,那么 folder[i] 就是 folder[j] …...

Doris--简单使用

一、数据表的创建与数据导入 1.1、创建表 1.1.1、单分区 CREATE TABLE table1 (siteid INT DEFAULT 10,citycode SMALLINT,username VARCHAR(32) DEFAULT ,pv BIGINT SUM DEFAULT 0 -- 聚合模型, value column 使用sum聚合 ) AGGREGATE KEY(siteid, citycode, …...

使用GPT让你的RStudio如虎添翼

API的的调用目前来说不限制地区,但是OpenAI的API的申请限制了地区。运行的时候,如果出现了429,意味着你被限流了,需要等一会才行。 前提是,你需要注册一个OpenAI的账户,然后在https://openai.com/api/ 里申…...

Python 算法交易实验45 再探量化

说明 去年大部分精力都在构建底层架构和工具了,一直都没有时间搞量化。目前底层的数据库服务(ADB)和清洗(衍生 AETL) 工具已经好了,我想尽快的把量化启动起来。 内容 1 思想 作为交易来说,只有买卖。通过数据分析与模型,我们获得的增强点是决策。在合适的时候进行买卖的…...

STM32CubeMX + HAL 库:定时器输入捕获的进阶应用,多通道PWM信号同步测量与动态分析

1. 多通道PWM信号同步测量的核心挑战 在电机控制或无人机舵机系统中,经常需要同时监测多个PWM信号的实时状态。比如四轴飞行器的四个电调信号,或者机械臂的六个关节舵机反馈。传统单通道测量方法需要轮流采样,无法捕捉各通道间的相位关系&…...

分布式能力不是功能,而是一种架构约束

网罗开发(小红书、快手、视频号同名)大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方…...

ArcGIS JS API调用天地图WMTS服务实战:从GetCapabilities解析到完整代码实现

ArcGIS JS API调用天地图WMTS服务全流程解析 在WebGIS开发中,将第三方地图服务无缝集成到ArcGIS生态系统中是常见需求。天地图作为国内权威的地理信息服务,其WMTS(Web Map Tile Service)接口的调用尤为关键。本文将深入剖析从服务…...

【仿真】【具身智能】云端低成本畅玩Isaac Lab:抢占式实例部署实战

1. 为什么选择云端抢占式实例部署Isaac Lab 第一次接触Isaac Lab时,我和大多数开发者一样被本地部署的高门槛吓退了。一张RTX 3090显卡就要上万元,更别提配套的CPU和内存配置要求。后来尝试过VNC远程连接方案,结果画面卡顿得像在看PPT&#x…...

Z-Image Atelier 生成极限测试:挑战高分辨率与复杂构图下的稳定性

Z-Image Atelier 生成极限测试:挑战高分辨率与复杂构图下的稳定性 最近在玩各种AI绘画工具,发现一个挺有意思的现象:很多模型生成小图看着还行,一旦把分辨率往上提,或者画面内容变得复杂,就容易“翻车”。…...

Java PPT自动化:从数据到演示文稿的智能生成

1. 为什么需要Java PPT自动化? 想象一下这样的场景:每周五下午,市场部的同事都会准时发来一封邮件,要求你根据本周的销售数据生成一份PPT报告。数据来自CRM系统,包含几十个SKU的销售额、增长率、区域分布等信息。你需要…...

如何利用AI技术修复模糊视频:3大实用方案让影像重获新生

如何利用AI技术修复模糊视频:3大实用方案让影像重获新生 【免费下载链接】SeedVR-7B 项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance-Seed/SeedVR-7B 翻看多年前的家庭录像,画面模糊得连亲人的面容都难以辨认;手机拍摄的旅行…...

AI Agent社交网络:为什么这是比AI工具更值得关注的方向?

2026年,AI Agent已经从概念走向落地。从AutoGPT到各类AI助手产品,Agent的能力在不断提升。但有一个问题值得关注:当AI Agent越来越强大,它们之间需要社交吗?今天从行业角度,聊聊AI Agent社交网络这个话题。…...

0基础java,面向对象

万物皆对象,要想创建一个对象,就必须要有一个类,一个类可以new很多很多的对象类的组成在一个类中,由属性和方法组成。同时和类相关的还有变量,权限修饰符和如何创建对象对象的创建对象的可以new一个出来,也就是创建。当然部分API不用写new也可以创建对象比如,在JDK8…...

5步快速禁用Windows Defender:使用WSC API的专业解决方案

5步快速禁用Windows Defender:使用WSC API的专业解决方案 【免费下载链接】no-defender A slightly more fun way to disable windows defender. (through the WSC api) 项目地址: https://gitcode.com/GitHub_Trending/no/no-defender 当Windows Defender频…...