1 条题解

  • 0
    @ 2024-7-28 14:23:09
    #include <queue>
    #include <set>
    #include <math.h>
    #include <stack>
    #include <stdio.h>
    #include <iostream>
    #include <vector>
    #include <iomanip>
    #include <string.h>
    #include <algorithm>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    #define LL long long
    const int N = 1e4 + 10;
    const int INF = 0x3f3f3f3f;
    int n,m,fa[N];
    int find(int x)
    {
    	if(fa[x]==x) return x;
    	return fa[x]=find(fa[x]);
    }
    int main()
    {
    	while(cin>>n&&n)
    	{
    		cin>>m;
    		for(int i=1;i<=n;++i)
    			fa[i]=i;
    		for(int i=1;i<=m;++i)
    		{
    			int x,y;
    			cin>>x>>y;
    			x=find(x),y=find(y);
    			fa[x]=y;
    		}
    		int ans=0;
    		for(int i=1;i<=n;++i)
    			if(fa[i]==i)
    				ans++;
    		cout<<ans-1<<endl;
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    1319
    时间
    1000ms
    内存
    32MiB
    难度
    5
    标签
    递交数
    75
    已通过
    31
    上传者