为什么会编译错误?
查看原帖
为什么会编译错误?
975573
lyc1109楼主2024/3/5 14:46

C++代码 ↓↓ ↓↓

#include<iostream>
using namespace std;
int n;
int find(int x,int (&f)[]){
	if(f[x]==x) return x;
	return f[x]=find(f[x],f);
}
void merge(int x,int y,int (&f)[]){
	int fx=find(x,f),fy=find(y,f);
	f[fy]=fx;
	return;
}
int main(){
	int n,m,p,x,y,ans=0;
	cin>>n>>m;
	cin>>p;
	int f[n*m+1];
	bool fa[p+1]={false};
	for(int i=1;i<=n*m;i++){
		f[i]=i;
	}
	for(int i=1;i<=p;i++){
		cin>>x>>y;
		merge(x,y,f);
	}
	for(int i=1;i<=n*m;i++){
		if(!fa[find(i,f)]){
			ans++;
			fa[find(i,f)]=true;
		}
	}
	cout<<ans;
	return 0;
}
2024/3/5 14:46
加载中...