UOJ 67 新年的毒瘤 (tarjan算法求割点)

UOJ#67 新年的毒瘤(Tarjan算法求割点) Tarjan算法求无向图的割点 阅读详情

67 新年的毒瘤

辞旧迎新之际,喜羊羊正在打理羊村的绿化带,然后他发现了一棵长着毒瘤的树。

这个长着毒瘤的树可以用 nn 个结点 mm 条无向边的无向图表示。这个图中有一些结点被称作是毒瘤结点,即删掉这个结点和与之相邻的边之后,这个图会变为一棵树。树也即无简单环的无向连通图。

现在给你这个无向图,喜羊羊请你帮他求出所有毒瘤结点。

输入格式
第一行两个正整数 n,m,表示有 n 个点 m 条边。保证 n≥2。
接下来 mm 行,每行两个整数 v,u,表示 v 和 u 之间有一条无向边。1≤v,u≤n。保证没有重边和自环。

输出格式
第一行一个正整数 s,表示这个图中有 s 个结点是毒瘤。
接下来一行,共 s 个整数,每个整数表示一个毒瘤结点的编号。请按编号从小到大的顺序输出。
数据保证图中至少存在一个毒瘤结点。

样例一
input
6 6
1 2
1 3
2 4
2 5
4 6
5 6

output
3
4 5 6

题解

正解需要你理解什么叫做树。如果你对树的理解仅仅是“长得像树的家伙”就完蛋了。

我们需要用一个定义来规定什么叫做树。我们可以理解成,有 n−1n−1 条边的无向连通图。“有 n−1 条边” 提示我们最终图里有 n−2 条边,所以你需要删一个度数为 m−(n−2) 的结点。

考虑第二个条件,也就是说删掉这个点后剩下的图仍然连通,所以这个点不是割点就行了。

所以用 Tarjan 算法求割点,然后输出所有不是割点且度数满足条件的结点就行了。可以获得 100 分。

program mys;
type ab=^node;
node=record
ends:longint;
next:ab;
end;

var i,j,k,m,n,x,y,t:longint;
p:array[0..100010]of ab;
f,d,low,dfn,g,c:array[0..100010]of longint;
b:array[0..100010]of boolean;

procedure com(x,y:longint);
var i:ab;
begin 
i:=p[x];
new(p[x]);
p[x]^.ends:=y;
p[x]^.next:=i;
end;

procedure dfs(x:longint);
var i:ab;
y:longint;
begin 
inc(t);
dfn[x]:=t;
low[x]:=t;
i:=p[x];
while i<>nil do 
begin 
y:=i^.ends;
if dfn[y]=0 then 
begin 
dfs(y);
if low[y]<low[x] then low[x]:=low[y];
if low[y]>=dfn[x] then inc(g[x]);
end
else if dfn[y]<low[x] then low[x]:=dfn[y];
i:=i^.next;
end;
end;

begin 
readln(n,m);
for i:=1 to m do 
begin 
readln(x,y);
inc(d[x]); 
inc(d[y]);
com(x,y);
com(y,x);
end;

g[1]:=-1;
dfs(1);
t:=0;
for i:=1 to n do 
if (g[i]<=0)and(m-d[i]=n-2) then 
begin 
inc(t);
c[t]:=i;
end;
writeln(t);
for i:=1 to t do
write(c[i],' ');
end.

AI 模型训练核心方法论:零基础也能落地的 8 个关键阶段 本文是为 AI 零基础学习者打造的模型训练入门指南,以生活化语言拆解核心概念,规避专业术语壁垒。内容先通俗阐释模型训练、监督学习、数据集划分等基础概念,再按问题定义、数据准备、模型选择、环境搭建、训练、评估、调参、部署 8 个阶段,拆解完整训练流程,搭配 PyTorch 代码示例与实战案例,同时提供资源预算、常见问题解决方案及学习路径。指南强调数据的核心重要性,推荐新手优先使用迁移学习和免费 GPU 资源,兼顾理论与实操,帮助学习者快速上手,避开训练误区,独立完成从模型搭建到部署的全流程。 阅读详情

相关推荐

基于 Cognex VisionPro 的工业级图像匹配技术全解析

通过本文的深度解析,开发者可以系统掌握 Cognex VisionPro 图像匹配技术的核心原理、开发流程、优化策略及工业级应用。实际项目中,需结合具体场景灵活调整参数,综合运用预处理、特征提取和匹配算法,构建稳定可靠的视觉系统。

品质生活,极致编程。 1594

UOJ - 新年的毒瘤

题目链接:UOJ - 新年的毒瘤 显然我们只关心树的结构:连通 and 边数位点数-1 所以,只要不是割点,然后度数满足即可。 AC代码: #pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++.h> //#define int long long using namespace std; c...

青烟绕指柔的博客 713

5.2 自抗扰控制 (ADRC)

自抗扰控制(Active Disturbance Rejection Control, ADRC)是由韩京清研究员于1998年提出的一种不依赖被控对象精确数学模型的新型控制技术[reference:0]。其核心思想是将系统的模型不确定性、内部参数摄动以及外部负载变化等所有影响统一定义为“总扰动”,通过一个名为扩张状态观测器(ESO)的环节对其进行实时估计并主动补偿,从而实现动态解耦和强鲁棒性。

技术工作者 1176

【UOJ#67】新年的毒瘤 Tarjan 割点

#67. 新年的毒瘤 UOJ直接黏贴会炸... 还是戳这里吧:http://uoj.ac/problem/67#tab-statement Solution 看到这题的标签就进来看了一眼。 想了一个比较胡搞的方法,因为删除割点就会产生多个块,那么割点是不能被割的,所以只能割非割点。 删除非割点后是棵树,说明边数是N-2...然后求一下每个点的度... 只要不是割点,并且割掉这个...

weixin_30536513的博客 132

基于Python+OpenCV中文及符号检测

一、项目背景与意义在图像处理、文档识别、自动翻译等场景中,中文及符号的准确检测是一个重要且复杂的任务。传统的字符检测方法往往对英文等拉丁字母系的识别效果较好,但对中文及特殊符号的识别准确率较低。本项目旨在利用Python编程语言结合OpenCV库,开发一个能够高效、准确地检测图像中中文及符号的系统,为相关领域的研究和应用提供技术支撑。二、技术实现图像预处理:利用OpenCV的图像处理功能,对输入的图像进行灰度化、二值化、滤波去噪等预处理操作,以提高中文及符号检测的准确性[1]。

2301_79809972的博客 1119

时间同步中 TOD 与GPRMC和IRIG-B的区别

时间同步中 TOD 与GPRMC和IRIG-B的区别

ftdlk的博客 1725

UOJ #67. 新年的毒瘤

Description 给你一个无向图,求删掉一个点及其连的边后,剩下的图是树结构,求这些点. Sol Tarjan求割点. 只需要求出割点,因为删掉的点只需要满足:不是割点(保证连通),边数位m-(n-2),即可. PS:Tarjan求割点的时候对于根要计算是他子树的点,而不是他的度数. Code #include<cstdio> #include&lt...

aisen1985的博客 165

结合 Conda 手动安装 RepeatMasker

RepeatMasker 是一个广泛使用的生物信息学工具,用于识别和屏蔽(mask)基因组序列中的 重复序列(repeats) 。在使用过程中需要调用重复序列数据库(Repbase 和 Dfam),如果使用Conda安装的话会出现许多问题,因此推荐手动安装。在此记录我手动安装RepeatMasker的流程,希望对各位同学有所帮助。

m0_65437087的博客 2535

UOJ67-割点(tarjan)-新年的毒瘤

http://uoj.ac/problem/67 中文题目: 给定一个无向图,问你当切割完一个点后,剩下的点连接成一个树。 问你切割哪些点,按照顺序从小到大输出。 首先 割点是不能切的,割点切了就不是连通图了。 其次 我们发现最后的题意要求是图。设切的点的度为x 则存在 (n-x)+1=m-1 (m是点,n是边,切了点后少了x个边后,构成了树的关系,即边加1等于 点的个数) 于是乎

天与云与山与水 405

python:numpy分享(保姆级教程)

创建数组:array和ndarray、rand()、randn()、arange()、randint()、uniform()astype()基础函数:ceil()、floor()、rint()、argmax()、argmin()、cumsum()、cumprod()numpy 是数据分析必不可少的第三方库,具有高性能的特点,多用于做数组分析。内置函数:ceil()、floor()、rint()主要用于数组计算,支持多维数组。array和ndarray。比较函数:all、any。去重函数:unique。

sulin123123的博客 1729

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析

伶俐角少儿编程 727

uoj#67 新年的毒瘤【Tarjan】

题目:http://uoj.ac/problem/67 题意:n个节点m条边的图,删除某个节点及他相连的所有边之后,剩下的图就成了一棵树。找出所有这样的节点。 思路:上次去清华面试的B题,当时就是在瞎写。太菜了。 其实就是两点,一是删除一个点是树,那么剩下来只有$n-2$条边。也就是说删掉的那个点的度是$m - (n - 2)$ 其次,删掉了这个点之后还需要保证图的连通性,也就是说割点一定...

weixin_30394981的博客 256

delphi 调用deepseek r1 api 并流式返回结果

摘要:本文展示了一个使用Delphi调用DeepSeek API的代码示例,包含两种调用方式:一次性获取结果和流式返回结果。代码实现了完整的API请求处理,包括HTTP客户端设置、JSON数据处理和UI界面交互。其中流式调用通过TStreamReader处理服务器发送事件(SSE),实时更新到TRichEdit控件并保持滚动条位置。文章还提到界面美化优化,为Delphi开发者提供了调用AI服务的实用参考方案。(150字)

全粘工程师 491

UOJ67 新年的毒瘤

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:http://uoj.ac/problem/67 正解:tarjan+树的相关性质 解题报告: ...

dgoh41514的博客 163

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

uoj 67 新年的毒瘤 tarjan求割点

#67. 新年的毒瘤 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/67 Description 辞旧迎新之际,喜羊羊正在打理羊村的绿化带,然后他发现了一棵长着毒瘤的树。这个长着毒瘤的树可以用 n 个结点 m 条无向边的无向图表示。这个图中有一些结点被称作是毒瘤结点,即删掉这个结点和与之相邻的边之后...

weixin_34253539的博客 145

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【UOJ#67】新年的毒瘤(Tarjan)

【UOJ#67】新年的毒瘤(Tarjan) 题面 UOJ 题解 一棵\(n\)个节点的树显然有\(n-1\)条边,在本题中意味着删去一个点之后还剩下\(n-2\)条边。那么找到所有度数为\(m-(n-2)\)的点就好了。但是因为是一棵树,所以联通,所以割点不是答案。 #include<iostream> #include<cstdio> using namespace st...

weixin_30421525的博客 177

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

UOJ 67 新年的毒瘤

割点非割点且度数=m-n+2的就是答案。割点竟然没一次写对,智商已降低。设根为1。对于非1节点,一定有父亲的边,则它是割点的充要条件是存在一个儿子的low>=自己的dfn。对于1节点,它是割点的充要条件是有至少两个儿子。MD,对于非1节点忘记判断 x != 1了#include<cstdio> #define R register #define N 100005 #define cmin(u,v

无尽 486

UOJ67 新年的毒瘤 tarjan

题目传送门 题意:给出一个$N$个点、$M$条边的无向图,找出其中的点,满足去掉该点与和它相连的边之后,这个图会变成一棵树。$N , M \leq 10^5$ 说是毒瘤,真的不毒瘤 思考一下,我们需要找的就是度为$M - (N - 1 - 1)$且不是割点的点,直接tarjan即可 想起来在某luogu题解里把tarjan写成targan 1 #include<bits/...

weixin_30379973的博客 97

UOJ 67 新年的毒瘤 - Tarjan

Description 给出一个无向图, 要求找出某个点$u$, 去掉$u$和$u$所连的边, 所剩下的节点构成一棵树。 Solution 首先, 割点肯定是不可能满足条件的, 因为去掉割点后会构成若干个不连通的图。 所以我们先求出割点, 再查找不是割点, 并且 去掉它连接的边, 剩下的 边数为$N-2$, 只有这种点才能够满足要求。 Code 1 #include&l...

weixin_30344795的博客 134

UOJ #67 新年的毒瘤 (发现性质与Tarjan找割点)

题目描述: 有一幅$n$个点$m$条边的图,问单独删掉哪些点,可以使原图变成一棵树。(保证至少有一个解) 解题思路: 注意到树的性质是有$n$个点,$n-1$条边的联通图。而删掉一个点后新图有$n-1$个点,所以需要选择的点的度数是$m-(n-2)$。而要保证新图联通,所以要先$Tarjan$找割点,不要删割点就可以了。 代码: 1 #include <cstdio> ...

weixin_30448685的博客 163

Tarjan 总结

Tarjan 总结 1.Tarjan求强连通分量 2. Tarjan求割点 3. Tarjan求割边(桥)

不念过去,不畏将来 1144

洛谷P1173 [NOI2016]网格

这个码量绝对是业界大毒瘤...... 300行,6.5k,烦的要死...... 题意:给你一个网格图,里面有0或1。你需要把一些0换成1使得存在某两个0不四联通。输出最小的换的数量。无解-1。 n,m<=1e9,网格中1的数量<=1e5,多组数据。 首先我们发现,最多只要2就行了(围住一个角落),所以答案是[-1,2]中的整数。 然后考虑何时为-1:0的数目小于2或等于2且相...

weixin_34205826的博客 356

重走长征路---OI每周刷题记录---2月28日 2015

总目录详见https://blog.youkuaiyun.com/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做。2018-11-28 重走长征路---OI每周刷题记录---2月28日  2015 本周共计 题+题 测评地址: dp:「cf83E」Two Subsequences 期望dp:「cf398B」Painting The Wall 树...

mrcrack的博客 420

新年的毒瘤

虽然一看就知道是用tarjan求割点的,诶诶诶但我还是得去翻了翻题解。发现哇好妙啊,被删掉的点一定不是割点,因为删掉的话图就不连通了,但是一棵树是连通的。现在还是没有编完的。我们要找的点就是从不是割点的点里面找到边数为m-(n-2)的点 ,这真的非常显然啊,我为什么这么蠢呢还没有处理边数,mark一下,中午回来继续打。----------------------------------...

a2491411的博客 190
上一篇: 差分约束基础
下一篇: Tyvj 1174 互素 (欧拉函数)
CodeOnce
博客等级 码龄10年 3粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值