Uva-1160-X-Plosives

来源:互联网 发布:学美容知乎 编辑:程序博客网 时间:2024/04/30 11:43

比较简单的一道并查集练习题

代码:

#include<cstdio>#include<cstring>#include<iostream>#define MAX 100001using namespace std;int p[MAX],ans;int find(int x){    if(p[x]==x)return x;    return p[x]=find(p[x]);}int main(){    int a,b;    while(scanf("%d",&a)!=EOF)    {   for(int i=0;i<MAX;i++)    p[i]=i;ans=0;while(1){    scanf("%d",&b);    int ita=find(a);    int itb=find(b);    if(ita==itb)ans++;    elsep[ita]=itb;    scanf("%d",&a);    if(a==-1)break;}printf("%d\n",ans);    }    return 0;}