样例能过 但是全Wa
查看原帖
样例能过 但是全Wa
354967
heartsofiron4楼主2024/3/23 13:00
#include<bits/stdc++.h>
using namespace std; 

int n, m, a, b, cnt; 
int f[1005], arr[1005]; 
bool flg; 

int find(int x){
	if(f[x] != x){
		f[x] = find(f[x]); 
	}
	return f[x]; 
}

int main(){
	while(1){
		cnt = 0; 
		memset(f, 0, sizeof(f)); 
		memset(arr, 0, sizeof(arr)); 
		
		scanf("%d", &n); 
		if(n == 0){
			break; 
		}
		scanf("%d", &m); 
		for(int i = 1; i <= n; i++){
			f[i] = i; 
		}
		for(int i = 1; i <= m; i++){
			scanf("%d%d", &a, &b); 
			f[find(a)] = find(b); 
		}
		
		for(int i = 1; i <= n; i++){
			flg = 1; 
			for(int j = 1; j <= cnt; j++){
				if(f[i] == arr[j]){
					flg = 0; 
					break; 
				}
			}
			
			if(flg){
				arr[++cnt] = f[i]; 
			}
		}
		
		printf("%d\n", cnt - 1); 
	}

	return 0; 
}
2024/3/23 13:00
加载中...