求调!!!
  • 板块P2078 朋友
  • 楼主wnqnld_llx
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/3/20 15:11
  • 上次更新2024/3/20 18:28:38
查看原帖
求调!!!
1200401
wnqnld_llx楼主2024/3/20 15:11

求调

#include<bits/stdc++.h>
using namespace std;
int n,m,p,q,ans;
const int N=1e8+10;
int fa[N];
int find(int x){
	if(fa[x]==x) return x;
	return fa[x]=find(fa[x]);
}
void u(int x,int y){
	fa[find(x)]=find(y);
}
int main(){
	cin>>n>>m>>p>>q;
	for(int i=1;i<=n+m;i++){
		fa[i]=i;
	}
	for(int i=1;i<=p;i++){
		int x,y;
		cin>>x,y;
		if(find(x)!=find(y)) u(x,y);
		
	}
	for(int i=1;i<=p;i++){
		int x,y;
		cin>>x,y;
		x*=-1;
		y*=-1;
		if(find(x+n)!=find(y+n)) u(x+n,y+n);
	}
	for(int i=1;i<=n;i++){
		if(find(i)==find(1)) ans++;
	}
	for(int i=n+1;i<=n+m;i++){
		if(find(i)==find(n+1)) ans++;
	}
	cout<<ans;
	return 0;
}
2024/3/20 15:11
加载中...