HDU - 1272 小希的迷宫(并查集)

HDU1272 - 小希的迷宫 并查集检测无向图的环 HDU1272 - 小希的迷宫 利用并查集检测无向图的环 阅读详情

并查集应用——小希的迷宫

HDU - 1272

方法一:

对于输入的a、b,先判断是否在同一集合(即fa == fb),如果在,则不符合。

最后要判断:是否只有一个连通图。

我的代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll maxn = 1e5 + 5;
ll f[maxn], vis[maxn];
ll a, b, res;

int findFather(int x){
    if(x == f[x]) { return x; }
    else return f[x] = findFather(f[x]);
}

void Union(int a, int b){
    int fa = findFather(a);
    int fb = findFather(b);
    if(fa != fb){
        f[fa] = fb;
    }
}

void init(){
    for(int i = 1; i <= maxn; i++){
        f[i] = i, vis[i] = 0;
    }
    res = 0;
    //flag = 0;
}

int main(){
    int flag = 0;
    while(1){
        init();
        ll fa, fb, father;
        ll num = 0;
        while(cin >> a >> b){
            num++;
            if(a == 0 && b == 0) break;
            if(a == -1 && b == -1){flag = 1;break;}
            fa = findFather(a);
            fb = findFather(b);
            vis[a] = 1, vis[b] = 1;
            if(fa == fb){res = 1;}
            else f[fa] = fb;
        }
        if(flag) break;
        if(num == 1){cout << "Yes" << endl; }
        else if(res) { cout << "No" << endl; }
        else{//是否连通图
            ll cnt = 0;
            for(ll i = 1; i <=maxn; i++){
                if(f[i] == i && vis[i]) {
                    cnt++;
                }
            }
            if(cnt == 1){cout << "Yes" << endl;}
            else cout << "No" << endl;
        }
    }
}

/*
6 8 5 3 5 2 6 4 5 6 0 0
8 1 7 3 6 2 8 9 7 5 7 4 7 8 7 6 0 0
3 8 6 8 6 4 5 3 5 6 5 2 0 0
-1 -1
*/

wa点:

0 0 时输出Yes;

判断是否连通图,可以用vis[]和f[i] = i来判定。但注意如果只有一个连通图时,cnt = 1而不是0.

方法二:

判断是否一棵树。

树的定义:

1、连通图

2、点数=边数+1

如果只有第二个条件,例子:1 2 3 4 4 3 0 0

【包教包会】用树的定义去判断树!(HDU1272)(HDU1325)(POJ1308) 标题这几题都是去判断树的,只是输出不一样 要用定义去做树,那肯定要知道树是什么 学习的时候很迷茫是没搞清楚大方向 什么是大方向呢? 两个字:图论 树肯定是图,但图不一定是树 搞清楚这么几个知识点就可以愉快的做这题了 什么是度?度就是边。度分为入度和出度(出边和入边)。我们这里有个点V,指向V的边就是入度,从V指出去的是出度 什么是树?只有一个点入度为0,其它点入度为1的图就是树。 好了,一旦解决了什么是树,那所有问题解决了。什么?你说还不懂?那我给你一个个列出来 只有一个点入度为0保证了树有且只有一个根节点 除根节点外,其它点都有入度,保证了这一定是个连通图(仔细想就知道了,有入度肯定连着) 立即下载

相关推荐

深入解析MSPM0系列Keil开发中‘ti_msp_dl_config.h‘缺失问题的根源与修复

本文深入解析TI MSPM0系列Keil开发中'ti_msp_dl_config.h'文件缺失问题的根源与修复方法。该错误常见于编译时提示file not found,主要因SysConfig工具未正确生成或工程路径配置错误导致。文章提供了从环境检查、手动生成文件到工程配置调整的系统化解决方案,帮助开发者快速解决这一常见KEIL开发难题。

gold的博客 970

[HDU - 1272]小希的迷宫

基础并查集 要注意的点就是成环和空集,成环即Union拥有相同的根的两个点必然就会成环,此时是输出“NO”的。 而空集是要输出“YES”的。 #include <bits/stdc++.h> using namespace std; int ok; int fa[100000 + 10]; int vis[100000 + 10]; int Find(...

dlpnyd1317的博客 186

C#操作SQLite数据库帮助类——SQLiteHelper

using System; using System.Collections.Generic; using System.Data.SQLite; using System.Data; namespace Com.ZCWL.Rock.Helper { public class SQLiteHelper { private static string connectionString =

跟健哥出去走走 2万+

HDU - 1272 小希的迷宫 (并查集判环)

HDU - 1272[http://acm.hdu.edu.cn/showproblem.php?pid=1272] 一个简单的并查集应用题 小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。 由题可见,这是到并查集找环并且单集合的题 所以只要判断父节点是否相同(是否有环),以及祖宗结点是否只有一个(是否为单集合)就可以了 代码附上: #include<bits/stdc++....

qq_43586463的博客 324

告别专业软件!用QGIS+GDAL免费搞定S-57电子海图,附全套符号库和样式文件

本文详细介绍了如何利用免费开源工具QGIS和GDAL处理S-57电子海图,包括数据转换、符号库配置和专业可视化方案。通过实战指南,用户无需依赖昂贵的商业软件,即可实现从S-57到SHP的转换及专业级海图制作,特别适合预算有限的个人和小型机构。

weixin_33701294的博客 391

遗传算法解整数规划IntCon

x = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon) IntCon就是代表整数的参量,描述的是哪几个自变量是0-1整数变量。比如navrs设置有4个变量,设置IntCon为[2 3],代表第2和第3个变量是整数。 再比如设置IntCon=2:2:nvars,代表偶数项的变量是整数。 值得注意的是一旦设置了非空的IntCon,则Aeqandbeqmust be an empty entry ([]), andnonlconmust re...

jianti9962的博客 9220

hdu——1272——小希的迷宫(数)

Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。

清溪浅水 625

C++ 图像线特征提取(CannyLine算法+opencv3.4.6)

C++ 图像线特征提取(CannyLine算法+opencv3.4.6)

weixin_43896283的博客 1084

HDU - 1272 小希的迷宫 【并查集】

题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1272 思路 只需要判断 这张图 无环 并且只有一个连通块 就可以了 要注意 如果 只输入 0 0 那给的是空图 要给出 Yes 判断 无环 有两个方法 0.在并查集的合并操作中 如果 find(x) == find(y) 就说明 x 和 y 已经有一条边了 再加 就是成环了 直...

Dup4'Blog 370

第四章:无感FOC的平滑启动艺术:告别“咔哒”声与抖动

无感FOC启动技术面临"先有位置还是先有旋转"的核心矛盾,导致常见故障包括位置失准、负载突变等。基础方案采用开环I/F控制,但存在重载启动困难等局限性。进阶方案结合IPD位置检测技术,通过脉冲电压注入法精准定位转子初始位置。关键技术在于开环到闭环的平滑切换,采用混合观测器设计和相位对齐技术。量产优化包括自适应参数整定和故障恢复机制,确保启动可靠性和一致性。该系统工程方案可有效解决启动抖动、异响等问题,提升用户体验。

汽车软件开发 733

Word2vec核心模型精讲:CBOW与Skip-gram

Word2vec是Google提出的词向量模型,通过CBOW和Skip-gram两种神经网络架构将词汇映射到低维向量空间。CBOW通过上下文预测中心词,训练速度快但高频词表现更好;Skip-gram则相反,通过中心词预测上下文,适合处理生僻词。为解决softmax计算效率问题,Word2vec引入基于哈夫曼树的Hierarchical Softmax优化技术,将复杂度从O(V)降至O(logV)。文章详细解析了两种模型的原理差异,并演示了哈夫曼树的构造过程及其在词向量训练中的关键作用,这种结合词频的优

Trisyp的博客 530

HDU - 1272 (并查集 小希的迷宫)

G - 20p  HDU - 1272  上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头...

MY NODE 281

Python爬虫实战:爬取小红书数据做爆款分析,我破解了签名加密+移动端反爬(附完整代码)

爬取小红书数据的核心,不是“简单的HTTP请求”,而是“理解移动端接口的加密逻辑和反爬规则”——从x-s/x-t签名破解到移动端UA伪装,再到行为模拟,每一步都是对移动端爬虫的深度理解。这套方案的价值在于,不仅能稳定抓取小红书数据,还能从数据中拆解出有价值的爆款特征,真正把“数据”变成“洞察”。对程序员来说,小红书爬虫不仅是技术练手,更是了解新媒体平台数据逻辑的窗口。希望这篇分享能帮到做新媒体分析或爬虫进阶的小伙伴,也欢迎在评论区交流小红书反爬和爆款分析的更多技巧!

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

HDU 1272 小希的迷宫(并查集)

HDU 1272 小希的迷宫 https://vjudge.net/problem/HDU-1272 思路: 1.不能有环 2.所有点之间都要连通 我们可以用并查集,没有环并且只有一个集合(祖先)。 Code: #include <iostream> #include <cstdio> using namespace std; const int maxn = 1e5 +...

NaNa 267

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

hdu 1272 小希的迷宫(并查集)

hdu 1272 小希的迷宫 http://acm.hdu.edu.cn/showproblem.php?pid=1272 ProblemDescription 上次Gardon的迷宫城堡小希玩了很久(见ProblemB),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和...

diansitao5461的博客 171

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

HDU 1272 小希的迷宫 【并查集+判无向无环连通图】

HDU 1272 小希的迷宫 题目链接:vjudge传送门 具体思路: 做过Is It A Tree后就知道,这题比它简单点,只需要把判断入度的条件去掉,感兴趣的这里是题解 这题具体是用并查集维护 新加入一条边时,判断两点是否同一集合 是,则构成有环图,不满足 否,则将两点加入同一集合中 最后判断一下是否是空图(满足),或者非连通图(不满足),即可 具体代码: #include<iostre...

指弹键盘哼民谣 525

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HDU1272 小希的迷宫 - 并查集

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1272输入需要注意下,其次用set<>集合处理较方便/* HDU1272 小希的迷宫 http://acm.hdu.edu.cn/showproblem.php?pid=1272 */ #include <iostream> #include <stdio.h> #include <algorit

master-dragon的专栏 682

HDU 1272小希的迷宫 并查集

一、内容 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。小希现在把她的设计图给你,让你...

Tizzi的博客 805

【并查集】 HDU 1272 小希的迷宫

HDU 1272 小希的迷宫 http://acm.hdu.edu.cn/showproblem.php?pid=1272

Reluxer 512

HDU1272 小希的迷宫【并查集】

问题链接:HDU1272 小希的迷宫 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任...

aaaaawyf的博客 353

HDU 1272 小希的迷宫【并查集】

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通...

独钓门前月 1186

ACM-并查集之小希的迷宫——hdu1272

ACM 并查集 小希的迷宫 hdu1272

继续激情,继续奋斗。 2221

HDU 1272 小希的迷宫 并查集

虽然是一道比较简单的并查集应用。但是这道题需要注意的东西不少。首先要注意输入格式。 这道题主要就是判断一个无向图: 1、是不是连通图(也就是说连通分支数为1) 2、是否无环(其实就是输入的两个点是否有公共父节点,如果有公共父节点则说明这两个点肯定成环) 这道题不需要开rank[]数组,但是需要开一个visit[]来判断当前结点是否出现过。 题目传送门:小希的迷宫 HDU 1272

Moressette流沙的博客 363

[HDU1272]小希的迷宫[并查集]

题目链接:[HDU1272]小希的迷宫[并查集] 题意分析:小希的迷宫需要满足:1.每条路之间都是联通的;2.地图中不能出现回路。只要满足上述条件就输出『Yes』,否则『No』。 解题思路:赤裸裸的并查集- -。注意坑点:有可能给出多个不联通的地图集合,所以在输出结果前要判断一下是否有多个地图集合。 个人感受:坑坑的我没有发现有多个集合这种事情TAT 具体代码如下:#include #i

闲停 568

HDU1272 小希的迷宫 【并查集】

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 23829    Accepted Submission(s): 7314 Problem Description 上次Gardon的迷宫城堡小希玩了很久

长风的专栏 1092
上一篇: HDU - 1856 More is better (并查集)
下一篇: HDU - 1325 Is It A Tree?(并查集)
tsunaa
博客等级 码龄7年 67粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值