首页 > 其他分享 >并查集

并查集

时间:2023-08-04 15:56:50浏览次数:30  
标签:查集 return parent int d% find

亲戚(数据加强)

#include<bits/stdc++.h>
using namespace std;
int parent[500001];
int n,m,p;
int find(int x)//查
{
	if(parent[x]==x) return x;
	else{
		parent[x]=find(parent[x]);
		return parent[x];
	}
}
void merge(int i,int j)//并
{
	parent[find(j)]=find(i);
}
int main()
{
	scanf("%d%d%d",&n,&m,&p);
	for(int i=1;i<=n;i++){
		parent[i]=i;
	}
	for(int i=1;i<=m;i++){
		int mi,mj;
		scanf("%d%d",&mi,&mj);
		merge(mi,mj);
	}
	for(int i=1;i<=p;i++){
		int pi,pj;
		scanf("%d%d",&pi,&pj);
		if(find(pi)==find(pj)) printf("Yes\n");
		else printf("No\n");
	}
	return 0;
}

标签:查集,return,parent,int,d%,find
From: https://www.cnblogs.com/huangxirui/p/17606167.html

相关文章

  • P2391 白雪皑皑(并查集)
    P2391白雪皑皑(并查集)https://www.luogu.com.cn/problem/P2391题目背景“柴门闻犬吠,风雪夜归人”,冬天,不期而至。千里冰封,万里雪飘。空中刮起了鸭毛大雪。雪花纷纷,降落人间。美能量星球(pty在spore上的一个殖民地)上的人们被这美景所震撼。但是pty却不高兴,他不喜欢白色的世......
  • 并查集
    一般用于合并集合并查找集合1intfind(intx){//查找x的祖先2if(pre[x]==x)returnx;3returnpre[x]=find(pre[x]);//压缩路径4}5voidjoin(intx,inty){6intfx=find(x),fy=find(y);//查找这两个数的祖先7if(fx!=fy)pre[......
  • 闲置资源优化,轻松检查集群中的空闲成本
    作者:梁成昊(景祁)前言Kubernetes提供了对计算、网络、存储资源的抽象,提升了集群资源管理的效率。然而,由于用户不需要直接管理底层资源,可能导致部分闲置资源未及时发现,造成成本浪费。在企业IT成本治理过程中,如何发现并处理这部分资源,是成本优化的重要环节。为解决上述问题,阿里......
  • [并查集] 题单刷题摘要
    题单1.P6121[USACO16OPEN]ClosingtheFarmGP3144[USACO16OPEN]ClosingtheFarmS(逊版)思路\(\scr{Solution}\)每一时刻关闭农场,求是否全联通。也就是维护将单个集合分成多个集合。很容易想到爆搜算法,用vector邻接表建图,每次跑完图就将当前点的连边关系删去。复杂度......
  • luogu P3733 [HAOI2017] 八纵八横 题解【线段树分治+线性基+可撤销并查集+bitset】
    目录题目大意解题思路code题目大意题目链接给出一张\(n\)个点\(m\)条边的连通无向图,边带边权\(w_i\)。有以下三种操作,共\(q\)次:\(\centerdot\)在点\(x,y\)之间加入一条边权为\(w_i\)的边,如果这是第\(i\)个此种操作,则记这条新边为第\(i\)条。\(\centerdot\)将第\(k......
  • 并查集优化 - 按大小合并时间复杂度证明
    并查集优化-按大小合并时间复杂度证明if(sz[b[x]].size()>sz[b[y]].size())swap(x,y);对于每个元素,当它当前所在的集合中,需要有其它大于该集合大小的集合,才会被遍历如果元素在一个大小\(1\)的集合中,会转移到大小\(2\)的集合中如果元素在一个大小\(2\)的集合中,会......
  • 并查集
    简述并查集其实是一个很有用的算法(至少我是这么认为的),很简单,代码也很好写,今天突然想写一下并查集。直接讲并查集不太好说,我们先看下面这一道题:洛谷P3367【模板】并查集【模板】并查集题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入格式第一行包含两个整数......
  • 超市-并查集应用
    【超市】【问题描述】超市里有N件商品,每个商品都有利润pi和过期时间di,每天只能卖一件商品,过期商品(即当天di<=0)不能再卖。求合理安排每天卖的商品的情况下,可以得到的最大收益是多少。【输入格式】输入包含多组测试用例,测试用例最多30组。每组测试用例,以输入整数N开始,接下里输......
  • 并查集-讲课内容补全(未完
    施工中......先在这里给出我的并查集模板以下为比较常用的路径压缩intf[MAXN],n,m;voidclean(){for(inti=1;i<=n;i++)f[i]=i;}intfind(intx){if(x!=f[x])f[x]=find(f[x]);returnf[x];}voidadd(intx,inty){intfx=find(x),fy=find(y......
  • The Third Letter带权并查集
    Problem-1850H-Codeforces题意是给你a,b,c说明a在b后面c个单位(c<0就是在左边),每个位置只能有一个数,一共有n个位置,告诉你m个关系,问是否符合条件我们可以设置d[x]表示x到它的最早的父节点的距离,然后如果两个数父节点一样,那么c!=d[a]-d[b]时就说明不符合条件那么对于并查......