wa两个点求助
  • 板块P2078 朋友
  • 楼主MornHus
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/1/26 22:31
  • 上次更新2023/10/24 02:59:34
查看原帖
wa两个点求助
752094
MornHus楼主2023/1/26 22:31

我心思着也没问题啊

#include<bits/stdc++.h>
using namespace std;
inline int read(){
	int x=0;
	char c=getchar();
	while(c>'9'||c<'0'){
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		x=(x<<1)+(x<<3)+(c^'0');
		c=getchar();
	}
	return x;
}
int n,m,p,q,u,v,t,male,female;
int f[20001];
int find(int a){
	if(f[a]!=a)f[a]=find(f[a]);
	return f[a];
}
int main(){
	n=read();
	m=read();
	p=read();
	q=read();
	for(int i=1;i<=2*n;i++){
		f[i]=i;
	}
	for(int i=1;i<=p;i++){
		u=read();
		v=read();
		f[find(u)]=find(v);
	}
	for(int i=1;i<=q;i++){
		u=read();
		v=read();
		f[find(u+n)]=find(v+n);
	}
	t=find(1);
	f[find(n+1)]=t;
	for(int i=1;i<=2*n;i++){
		if(find(i)==t){
			if(i<=n)male++;
			else female++;
		}
	}
	cout<<min(male,female);
	return 0;
} 
2023/1/26 22:31
加载中...