社区讨论

我的代码在Dev上可以运行,到oj上就报错了

学术版参与者 2已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@ly4cdwp8
此快照首次捕获于
2024/07/02 19:45
2 年前
此快照最后确认于
2024/07/02 21:56
2 年前
查看原帖
CPP
#include <iostream>
using namespace std;
const int N=100,INF=1e9;
int g[N][N],cnt[N],p[N];
int m,n;
int find(int a){
	if(p[a]!=a) p[a]=find(p[a]);
	return p[a];
}
void merge(int a,int b){
	if(find(a)!=find(b)){
		p[find(a)]=find(b);
	    cnt[a]+=cnt[b];
	    cnt[b]=cnt[a];
	}
	
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;++i){
		p[i]=i;
		cnt[i]=1;
	}
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			if(i==j) g[i][j]=0;
			else g[i][j]=INF;
		}
	}
	for(int i=1;i<=m;++i){
		char c;
		cin>>c;
		if(c=='M'){
			int a,b;
			cin>>a>>b;
			merge(a,b);
		}else{
			int a;
			cin>>a;
			cout<<cnt[a]<<endl;
		}
	}
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...