数组特性
  • 板块学术版
  • 楼主Zilljy258
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/9/25 20:04
  • 上次更新2024/9/25 21:55:48
查看原帖
数组特性
547725
Zilljy258楼主2024/9/25 20:04
#include<bits/stdc++.h>

using namespace std;
int n,fa[105],x[105],y[105],ans;
int f(int x) {
	return x==fa[x]?fa[x]:fa[x]=f(fa[x]);
}
int main() {
	cin>>n;
	for(int i=1; i<=n; i++) fa[i]=i;
	for(int i=1; i<=n; i++) cin>>x[i]>>y[i];
	for(int i=1; i<=n; i++) {
		for(int j=i+1; j<=n; j++) {
			if(x[i]==j[x]||i[y]==j[y]) {
				int fx=f(i),fy=f(j);
				if(fx!=fy) fa[fy]=fa[fx];
			}
		}
	}
	for(int i=1; i<=n; i++) if(fa[i]==i) ans++;
	cout<<ans-1;
	return 0;
}

对于这串代码,14行的数组和下标倒置依然可以通过编译并完成题目。 进一步地,任何一个单字母数组与单字母下标互换后都可以正常通过编译

请问是为什么?

2024/9/25 20:04
加载中...