hdu 1232——畅通工程 (无优化)

来源:互联网 发布:阿里云主机免费 编辑:程序博客网 时间:2024/06/06 17:13

 并查集

这道题优化效果不明显


#include<iostream>#include<cstdio>#include<cstring>using namespace std;int father[1005];int getfather(int i){while(father[i]!=-1){i=father[i];}return i;}void Union(int x,int y){int fx=getfather(x);int fy=getfather(y);if(fx==fy)return ;elsefather[fx]=fy;}int main(){int n,m;int i,j;while(cin>>n&&n){cin>>m;memset(father,-1,sizeof(father));for(i=1;i<=m;i++){int x,y;cin>>x>>y;Union(x,y);}int num[1005];memset(num,0,sizeof(num));for(i=1;i<=n;i++)num[getfather(i)]=1;int sum=-1;for(i=1;i<=n;i++)if(num[i])sum++;cout<<sum<<endl;}return  0;}


原创粉丝点击