• hdu 3172 Virtual Friends


    #include<stdio.h>
    #include<string.h>
    #include<string>
    #include<iostream>
    #include<algorithm>
    #include<map>
    using namespace std;
    
    const int N=100000+5;
    int bin[N],ans[N];
    map<string,int>m;
    
    int Find(int x)
    {
        while(bin[x]!=x) x=bin[x];
        return x;
    }
    
    void Merge(int x,int y)
    {
        int fx=Find(x),fy=Find(y);
        if(fx==fy)
            printf("%d
    ",ans[fx]);
        else if(fx==x&&fy==y)
        {
            bin[fx]=fy;
            ans[fy]+=ans[fx];
            printf("%d
    ",ans[fy]);
        }
        else if(fx!=x&&fy==y)
        {
            bin[y]=fx;
            ans[fx]+=ans[y];
            printf("%d
    ",ans[fx]);
        }
        else if(fx==x&&fy!=y)
        {
            bin[x]=fy;
            ans[fy]+=ans[x];
            printf("%d
    ",ans[fy]);
        }
        else
        {
            bin[fx]=fy;
            ans[fy]+=ans[fx];
            printf("%d
    ",ans[fy]);
        }
    
    }
    
    void init()
    {
        for(int i=0; i<N; i++)
        {
            bin[i]=i;
            ans[i]=1;
        }
    }
    int main()
    {
        int i,tot,T,n,x,y;
        string n1,n2;
        while(~scanf("%d",&T))
        {
            while(T--)
            {
                tot=1;
                scanf("%d",&n);
                init();
                m.clear();
                for(i=0; i<n; i++)
                {
                    cin>>n1>>n2;
                    if(m[n1]==0)
                    {
                        m[n1]=tot;
                        tot++;
                    }
                    if(m[n2]==0)
                    {
                        m[n2]=tot;
                        tot++;
                    }
                    x=m[n1];
                    y=m[n2];
                    Merge(x,y);
                }
            }
        }
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    SQL Server创建索引的技巧分析
    SQL Server创建索引
    kmp算法的应用
    相交环的面积
    Rebranding
    Olympiad
    找新朋友
    卡特兰数
    越狱
    Wolf and Rabbit
  • 原文地址:https://www.cnblogs.com/xryz/p/4848000.html
Copyright © 2020-2023  润新知