判断图的连通性

该博客讲述了如何使用并查集解决图的连通性问题,包括处理边的删除和判断两点是否连通的操作。博主分享了在考试中因错误而未能正确解答的经历,并强调了离线操作和逆向思维的重要性。
摘要由CSDN通过智能技术生成

题目描述
给定一个无向图G,写一个程序处理以下两种操作:
1. 删去一条边(u, v)
2. 询问两点u,v 是否连通
输入
输入文件的第一行包含三个整数n, m, q,依次代表图的顶点数、边数、询问的个数。
接下来m 行,每行两个整数u, v,描述图中的一条边(u; v)。接下来q 行,每行三个整数t, u, v,描述一个操作。若t = 1 则操作代表删去边(u; v),否则操作代表询问点u 和v 是否连通。数据保证删除的边一定存在。

输出
对于每个询问操作输出一行字符串“Yes”(连通)或者“No”(不连通)。

样例输入
3 2 4
1 2
2 3
2 1 2
1 1 2
2 1 3
2 2 3
样例输出
Yes
No
Yes
提示
40%数据, n<=100, m<=1000, q<=1000
100%数据, n <=1000, m <= 100000, q <= 100000,可能存在重边。

并查集+逆向思维

考试的时候写了个广搜,觉得会超时,结果运行错误,只拿了30,让我百思不得其解。回家检查代码,结果发现打错了两个字母。。。(第一次这么手贱)其实不打错的话有80。。。
这题只要反着想就很简单了,先把所有边删光,把q个信息都储存下来离线操作。然后倒着来,是1就把两个端点并起来,是2就判断是否在同一集合中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值