zoukankan      html  css  js  c++  java
  • hdu 4496 D-City(并查集)

    题意:

    思路:

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<cstdlib>
    #include<cmath>
    #include<queue>
    #include<algorithm>
    using namespace std;
    const int MAXN=100000+5;
    int p[MAXN],u[MAXN],v[MAXN],vis[MAXN],w[MAXN],cnt[MAXN];
    int n,m,Q,ans;
    
    int findfa(int x)
    {
        return p[x]==x?x:p[x]=findfa(p[x]);
    }
    void bin(int xx,int yy)
    {
        int x=findfa(xx);
        int y=findfa(yy);
        if(x!=y)
        {
            p[x]=y;
            ans--;
        }
    }
    int main()
    {
        while(scanf("%d %d",&n,&m)!=EOF)
        {
            ans=n;
            memset(vis,0,sizeof(vis));
    
            for(int i=1;i<=m;i++)
            {
                scanf("%d %d",&u[i],&v[i]);
                w[i]=i;
            }
            for(int i=0;i<n;i++) p[i]=i;
            /*for(int i=1;i<=m;i++)
                if(vis[i]==0)
                    bin(u[i],v[i]);*/
    
            for(int i=m;i>0;i--)
            {
                cnt[i]=ans;
                bin(u[w[i]],v[w[i]]);
            }
            for(int i=1;i<=m;i++)
            {
               printf("%d
    ",cnt[i]);
            }
        }
        return 0;
    }
    
  • 相关阅读:
    48-最长不含重复字符的子字符串
    51-数组中的逆序对
    字符串的排列
    二叉树转链表
    求根
    构造二叉树
    二叉树中序遍历
    反转链表系列
    斐波那契系列
    f.lux
  • 原文地址:https://www.cnblogs.com/sola1994/p/4552838.html
Copyright © 2011-2022 走看看