zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    BeautifulSoup_第一节
    第一个python爬虫——保存淘宝mm图片
    面试题:css(一)
    面试:HTML(二)
    websocket
    面试题:HTML篇(一)
    HTML5遗忘知识点(一)
    webpack热更新原理
    webpack按需加载
    什么是process.env?
  • 原文地址:https://www.cnblogs.com/xryz/p/4848000.html
Copyright © 2011-2022 走看看