并查集 HDU1325-Is It A Tree?

告别点不亮!STM32F103驱动HT1621段码屏的常见坑点与调试心得 本文详细解析了STM32F103驱动HT1621段码屏的五大常见问题及解决方案,包括硬件连接、时序控制、RAM地址映射等关键难点。通过实测数据和代码示例,帮助开发者快速排查显示异常问题,提升驱动开发效率。特别针对HT1621与STM32F103的兼容性问题提供了专业调试建议。 阅读详情

题目链接:HDU1325-Is It A Tree?

题意:有多组测试数据,处理到负数出现结束。每组测试数据有多组数,每组数a和b代表a和b相连,且是由a指向b,当a和b均为0是结束一组测试数据,判断之前输入的数据是否是一颗树。

若是树,则必须满足 1:没有环出现。2:只有一个根节点。3:每个点的入度为不大于1.

思路:并查集算法。代码里有解释

代码:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int MAXN = 111111;
int Father[MAXN],Mark[MAXN],Degree[MAXN];//Mark[i]用于标记数字i是否出现过。Degree[i]用于记录i的入度,可粗略的理解为子节点出现的次数
int flag,ans;
void Initial()
{
	memset(Mark,0,sizeof(Mark));
	memset(Degree,0,sizeof(Degree));
	flag=ans=0; 
	for(int i=0;i<MAXN;i++)//初置父节点为自身
		Father[i]=i;
}
int Find(int x)//查找终父节点 
{
	int r=x;
	while(Father[r]!=r)r=Father[r];
	return r;
}
void Union(int x,int y) 
{
//	if(x==y)return;
//	Father[y]=x;	
	int xx=Find(x),yy=Find(y);
	if(xx==yy)return;
	Father[yy]=xx;//只能有一个方向,从xx指向yy	
}
int main()
{
	int a,b;
	int Case=0;
	Initial();
	while(~scanf("%d%d",&a,&b) && (a>=0 && b>=0))
	{		
		if(a==0 && b==0)//处理到a=0且b=0输出之前输入的结果
		{
			for(int i=1;i<MAXN;i++)
			{
				if(ans>1)//若有两个根节点则不是树
				{
					flag=1;
					break;
				}
				if(Mark[i] && Find(i)==i)//若i读入过,且根节点是他自己,则根节点的数目加一 
					ans++;
				if(Degree[i]>1)//判断是否有入度大于一的数字出现 ,出现则不是树 
				{
					flag=1;
					break;
				}
			}
			if(flag==1)
				printf("Case %d is not a tree.\n",++Case);
			else printf("Case %d is a tree.\n",++Case);			
			Initial();
			continue;
		}
		if(a!=b && Find(a) == Find(b))flag=1;//判断是否成环 
		Mark[a]=Mark[b]=1;//标记i已经读入 
		Degree[b]++;//b的入度加一,也就是b成为儿子的次数 
		Union(a,b);
	}
	return 0;
}

关于并查集,我推荐一篇博客,个人认为写的非常好: http://blog.youkuaiyun.com/dellaserss/article/details/7724401



QcarCamera-EVS HAL实现(一) 高通车载EVS实现 阅读详情

相关推荐

西门子840D新建项目

1、需要一个32位的WIN7或者XP系统,并且已经在系统中安装完成西门子840Dsl开发包和VS2008。(我采用的是XP系统虚拟机) 2、在开始->所有程序找到如下位置 3、在这个位置打开Visual Studio 4、文件->新建->项目 名称和位置都可以随意更改,点击确定。 5、在左侧选择第二个选项进入下面的界面 点击“Add Screen”按钮 可以修改“class name”然后点击“OK”返回上一个界面,再点击“Add Form” 可以修...

qq_36987047的博客 1861

hdu1325 Is It A Tree?并查集

hdu1325和另外一道hdu1272.题意基本一致。但是由于数据不同,所以解法也不尽相同。hdu1272可以不使用并查集水过,但这道就必须利用并查集了,用来判断是否是多个树。此外还要判断是否为有环,也就是入度不能大于1.

果冻虾仁 2776

告别PXE!用iPXE在CentOS 8.5上搭建一个能同时装Win11和Linux的万能网络启动盘

本文详细介绍了如何在CentOS 8.5上使用iPXE搭建支持Windows 11和Linux双系统部署的全能网络启动盘。通过对比传统PXE的局限性,展示了iPXE在HTTP协议支持、多架构适配和智能脚本方面的优势,提供从环境准备、服务配置到智能菜单开发的完整解决方案,显著提升系统部署效率。

weixin_29278805的博客 265

Is It A Tree?(HDU 1325)树型并查集

#include <bits/stdc++.h> using namespace std; const int N = 1005; int table[N]; int findt(int x){ if(table[x]==-1){ return x; } table[x]=findt(table[x]); return table[x]; } void merge(int a, int b){ int ta=findt(a); int tb=findt(b); if(t

征服所有不服的博客 264

用户行为数据分析 User Behavior Data from Taobao for Recommendation

一、提出问题 二、理解数据 数据来源 阿里云天池数据集:(https://tianchi.aliyun.com/dataset/dataDetail?dataId=649) 本文选取的数据集为UserBehavior.csv,共有5242880条数据。数据的具体类别如下表所示: 用户行为种类有四种,如下表所示 对于数据维度的说明如下: 在本文选取的2017年11月25日到2017年12月3日的时间范围内,不重复的用户数量为10202,不重复的商品ID数为412369,不重复的商品类目ID数为5859,

cccxxxqq的博客 5205

PostgreSQL+PostGIS空间数据入库实战:从矢量栅格到GeoServer发布全流程

本文详细介绍了将矢量与栅格空间数据导入PostgreSQL并利用PostGIS扩展进行管理的完整流程。内容涵盖环境搭建、使用shp2pgsql和raster2pgsql工具进行数据入库、基础空间查询验证,以及最终通过GeoServer发布为地图服务的实战步骤,为构建空间数据平台提供清晰指引。

weixin_29268267的博客 289

HDU 1325 Is It A Tree? 并查集

HDU 1325 Is It A Tree? A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edges between nodes satisfying the following properties. There is exactly one node, called the ro

DaNIelLAk的博客 339

【SpringBoot 3.x 第92节】Spring Modulith:构建模块化单体架构(基于 Spring Boot 3),一文带你搞透(超详细)!

🏆本文收录于《滚雪球学SpringBoot 3.x》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    该专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。

**My Coding Family** 995

HDU - 1325 Is It A Tree?(并查集)

Is It A Tree? HDU 1325 方法一 与“小希的迷宫”不同的是,这里多了个入度的概念(树的概念,只有一个入度为0的根)。 参考样例: 1 2 1 3 2 4 2 5 3 6 7 3 0 0 所以变动: 把判断输入的两个a, b是否在同一集合,变成统计被指向的结点的入度的个数:in[b]++ 其他不变。 最后要判断: 1、是否连通图 2、是否入度为0的点只有一个 我的代码 #include<bits/stdc++.h> using namespace std; #define l

Chancy_Lu的博客 240

基于STM32设计的智能门锁(微信小程序+手机APP等多种方式开锁)(188)

当前智能门锁项目是基于STM32微控制器、ESP8266-WIFI模块、OLED显示屏、指纹模块、蓝牙模块、门禁刷卡模块、烟雾检测模块、火光检测模块、温湿度检测模块等硬件设备开发的一种智能门锁系统

1万+

Google Gemini 模型本地可视化

Google近期发布了Gemini模型,而且开放了Gemini Pro API,Gemini Pro 可免费使用!Gemini Pro支持全球180个国家的38种语言,目前接受文本、图片作为输入并生成文本作为输出。Gemini Pro的表现超越了其他同类模型,当前版本配备了 32K 文本上下文窗口,可免费使用,且其定价将十分有竞争力。Gemini Pro具备丰富的功能:函数调用、数据嵌入、语义检索、自定义知识嵌入以及聊天功能。

HJ_blog 1246

[并查集] hdu1325 Is it a tree ?

A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edges between nodes satisfying the following properties. There is

童凌的技术博客 593

YOLO26 vs YOLOv12 vs YOLOv10:工业场景性能实测,速度/精度/部署难度全对比(附完整测试代码)

YOLO26:工业场景全能型选手,无NMS+无DFL设计让部署和推理都省心,小目标精度优势明显,CPU推理速度提升43%,适合大多数生产线场景YOLOv12:中大型目标检测专家,Area Attention在复杂背景下表现出色,适合汽车、家电等大型零部件检测YOLOv10:速度狂魔,GPU上性能领先,轻量化版本适合边缘部署,但小目标精度略逊,适合对实时性要求极高的分拣线场景。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 623

【并查集】HDU 1325 Is It A Tree?

HDU 1325 Is It A Tree?

Reluxer 499

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【并查集】hdu 1325 Is It A Tree?

注意以下4种情况: 0 0 可以1 1 0 0 不可以 1 2 1 2 0 0 不可以1 2 2 1 0 0 不可以 1 #include <cstdio> 2 #include <cstring> 3 4 const int MAXN=100000+5; 5 6 int a,b,mycas...

anxianxia1695的博客 104

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

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

HDU1325 Is It A Tree? 并查集

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1325 这题与HDU1272 小希的迷宫 (并查集) 非常像,不过细细看,还是有一点区别的。 就是这题的路径是单向的,每次只能由起点指向终点,在连接之前终点必须是根节点。 注意的问题: 1、不能成环,即每次输入的两个数的根节点不能相同; 2、最终根节点数目为一 3、注意当只输入“0 0” 时要输出”Case %d is a tree.“ 4、路径是单向的,即每次只能由起点指向终点,在连接之前终点必须是根节点。

旧时相识的专栏 649

hdu 1325/poj 1308 Is It A Tree? 并查集

题目链接 题意:给出n条有向边,判断是不是一棵树。 这题和hdu1272题目类似,只是把无向边改成了有向边。多加一个判断条件,保证子节点是根节点。 #include #include #include #include #define N 11000 using namespace std; int pre[N],vis[N],flag,maxn; void init() {

弱菜zc 1951

HDU1325 Is It A Tree?【并查集】

Is It A Tree?Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 27345    Accepted Submission(s): 6311Problem Description A tree is a well-known dat...

海岛Blog 1368

hdu 1325 Is It A Tree?(并查集全都是坑)

Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 24813    Accepted Submission(s): 5674 Problem Description A tree is a

MR CODER 266

HDU——1325 Is It a Tree?(并查集 / 技巧解题)

Problem Description A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edges between nodes satisfying the followin...

LightOn 319

并查集 hdu-1325 Is It A Tree?

Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 32554Accepted Submission(s): 7447 Problem Description A tree is a we...

weixin_30699443的博客 103

Is It A Tree? HDU - 1325 (并查集)

A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edges between nodes satisfying the following properties. The...

chen_zan_yu_的博客 295

HDU 1325 Is It A Tree? 并查集

点击打开链接 Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 29087    Accepted Submission(s): 6698 Problem Description A tree is a ...

紫芝的博客 419

并查集模板题 HDU1325 Is It A Tree?

并查集

Xerath的博客 340

【并查集】hdu 1325 Is It A Tree? 或 poj 1308 Is It A Tree?

/* THE PROGRAM IS MADE BY PYY */ /*----------------------------------------------------------------------------// Copyright (c) 2012 panyanyany All rights reserved. URL : http://acm.hdu.edu

panyanyany(飞雨幻沙) 765

HDU-1325(Is it a tree?) 并查集

题目大意:给定多组数据,每组数据以0 0结尾,-1 -1结束输入。通过已知节点信息判断是不是一棵树 解题思路:看边和节点的关系,有无形成环;看是不是森林,即入度为0的根只有一个;除根节点外的每个节点入度不得超过1; 实现代码: #include<iostream> #include<cstdio> #include<cstring> ...

weixin_30633405的博客 163

HDU 1325 Is It A Tree?(并查集)

题目大意:给你两个节点,前者指向后者(可以认为前者是后者的父节点),然后让你判断是否是一棵树。 解题思路:先说说这道题和小希的迷宫(HDU1272)那道题的区别,前者给出的两个点是有方向的,而后者是没有的,这就是唯一的区别。再者这道题其实就是让你判断所有的点最后所形成的图是否是一棵树。做这道题时错误了很多遍,细想之,主要是开始思路不好,很容易乱,理清思路让代码变得清晰起来就好了。判断一个图是否为

Ash.的博客 525
上一篇: HDU1213-How Many Tables 并查集
下一篇: 线段树维护区间的和和单点更新-HDU1166-敌兵布阵
P_rogrammer
博客等级 码龄12年 0粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值