试题 算法训练 与1连通的点的个数

试题 算法训练 与1连通的点的个数

#include
using namespace std;
int n,k,i;
int f[10001];
int s[10001];
int find(int x)
{
    while(x!=f[x])
    x=find(f[x]);
    return x;
}
int main()
{
    cin>>n>>k;
    for(i=1;i<=n;i++)
    {
    	f[i]=i;s[i]=1;
	}
    while(k--)
    {
        int a,b;
        scanf("%d %d",&a,&b);
        if(find(a)!=find(b))
        {
	        s[find(b)]+=s[find(a)];
	        f[find(a)]=find(b);
		}
    }
    printf("%d",s[find(1)]);
    return 0;
}

你可能感兴趣的:(#,蓝桥杯,算法,图论,动态规划)