@[1_1_1_1_1_1_](/user/965334) 这能不超吗,一个链就死了,要路径压缩()
by Bingxiu @ 2023-08-26 11:07:43
@[1_1_1_1_1_1_](/user/965334) 把find改成路径优化即可,如:
```c++
int find(int t)
{
if(p[t]==t)return t;
return p[t]=find(p[t]);
}
```
by Yuzilihhh @ 2023-08-26 11:08:33
@[Yuzilihhh](/user/567522) 过了谢谢
by 1_1_1_1_1_1_ @ 2023-08-26 11:16:22
咱就是说,这样不更好吗?
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m;
int p[10001];
int find(int t)
{
if(p[t]==t)
return t;
return p[t]=find(p[t]);
}
void Union(int x, int y)
{
int f1,f2;
f1=find(x);
f2=find(y);
p[f1]=f2;
}
int main()
{
int i;
int num;
int x,y;
int f1,f2;
cin>>n>>m;
for(i=1;i<=n;i++)
p[i]=i;
for(i=0;i<m;i++)
{
cin>>num>>x>>y;
if(num==1)
p[find(x)]=find(y);
else
{
if(find(x)==find(y))
cout<<"Y"<<endl;
else
cout<<"N"<<endl;
}
}
return 0;
}
```
by chengpengjin0908 @ 2023-08-27 19:58:03
狗头保命!!!
大佬不喜勿喷!!!
by chengpengjin0908 @ 2023-08-27 19:59:05