比赛 |
防止浮躁的小练习v0.7 |
评测结果 |
WWWWWWWEEE |
题目名称 |
食物链 |
最终得分 |
0 |
用户昵称 |
楚修 |
运行时间 |
1.965 s |
代码语言 |
C++ |
内存使用 |
0.56 MiB |
提交时间 |
2016-10-27 15:44:48 |
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int a[100001],sum;
inline int find(int x)
{
if(a[x]=x)return a[x];
else a[x]=find(x);
}
inline void uniond(int x,int y)
{
int xx=find(x);
int yy=find(y);
if(xx!=yy)
a[xx]=a[yy];
}
int main()
{
freopen("chain_2016.in","r",stdin);
freopen("chain_2016.out","w",stdout);
int n,m,s,d,w;
cin>>n>>m;
for(int i=1;i<=n;i++)
a[i]=i;
for(int i=1;i<=m;i++)
{
cin>>s>>d;
uniond(s,d);
}
w=a[1];
for(int i=1;i<=m;i++)
{
if(a[i]!=w)
{
w=a[i];
sum++;
}
}
cout<<sum;
}