设为首页 加入收藏

TOP

洛谷 P1536 村村通
2019-09-04 01:01:00 】 浏览:17
Tags:洛谷 P1536 村村通


题目

P1536 村村通

思路

并查集,一开始连通快的数量为$n$,输入$m$条边时如果该边起点和终点不在同一联通块内就合并并让联通块数量减一,最后输出联通块数量减一。

$Code$

#include
#include
#include
#include
#include
#define MAXN 1001
using namespace std;
int n,m;
int fa[MAXN];
int find(int x){
    return fa[x]==x?x:fa[x]=find(fa[x]);
}
inline int read(){
    int x=0;bool f=0;char c=getchar();
    while(c<'0'||c>'9'){if(c=='-')f=!f;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    return f?-x:x;
}

int main(){
    while(1){
        n=read();
        for(int i=1;i<=n;++i) fa[i]=i;
        if(n==0) break;
        int ub=n;
        m=read();
        if(m==0){
            printf("%d\n",n-1);
            continue;
        }
        for(int i=1,x,y;i<=m;++i){
            x=read(),y=read();
            if(find(x)!=find(y)){
                fa[find(x)]=find(y);
                ub--;
            }
        }
        printf("%d\n",ub-1);
    }
    return 0;
}

洛谷 P1536 村村通 https://www.cppentry.com/bencandy.php?fid=49&id=250057

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇洛谷 P1396 营救 下一篇洛谷 P2725 邮票题解

kafka-
kafka ? Partit
解决android studio
Kafka史上最详细原理
Error while fetchin
【Kafka】安装与快速
? ? &
flume读取日志数据写
Authentication plug
Flume 自定义source
flume ? 三大核
ICC副本>>>
愚公移山 ?
Hbase架构 ? Hb
5 hbase-shell + &
Hbase ? MapRed
MetaException(messa
Exception in thread
HIVE metastore Dupl
-->