样例过了,但是0分MLE
by yonghang @ 2023-03-18 21:47:12
你这样例怎么过的
by InversionShadow @ 2023-03-18 21:49:31
@[yuandingquan1101](/user/672281)
抱歉,贴错代码了
by yonghang @ 2023-03-18 21:50:07
@[yuandingquan1101](/user/672281)
```cpp
#include<bits/stdc++.h>
using namespace std;
int f[10001005],n,m,s;
int findfa(int x)
{
return f[x] = f[x]==x?x:findfa(f[x]);
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
s=0;
if(n==0) break;
scanf("%d",&m);
for(int i=1;i<=n;i++) f[i]=i;
for(int i=1;i<=m;i++)
{
int a,b;
scanf("%d%d",&a,&b);
f[a]=b;
}
for(int i=1;i<=n;i++)
{
if(findfa(f[i])==i)//自己等于自己本身,未合并,则不存在路
{
s++;
}
}
printf("%d\n",s-1);
}
}
```
by yonghang @ 2023-03-18 21:50:42
@[yonghang](/user/934196)
你的合并也要函数实现吧
去看看并查集模板
by InversionShadow @ 2023-03-18 21:51:52
`f[find(a)]=find(b)`
by InversionShadow @ 2023-03-18 21:53:03
@[yuandingquan1101](/user/672281)
A了!谢谢大佬!
已经关注
by yonghang @ 2023-03-18 21:55:25
额
by sunny789 @ 2023-03-18 22:23:20