是数据弱了吗?我的O(n^2)代码ac了,但在acwing里会TLE
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+5;
int p[N],s[N],v[N];
int n,m;
int find(int x)
{
if(p[x]!=x)p[x]=find(p[x]);
return p[x];
}
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)p[i]=i;
for(int i=0;i<m;i++)
{
int type,a,b;cin>>type>>a>>b;
if(type==1)
{
if(a==b)continue;
int pa=find(a),pb=find(b);
if(pa==pb)continue;
for(int i=1;i<=n;i++)
{
int pi=find(i);
if(p[i]==pa||p[i]==pb)
{
s[i]+=v[pi];
}
}
v[pa]=v[pb]=0;
p[pa]=pb;
}
else
{
int pa=find(a);
v[pa]+=b;
}
}
for(int i=1;i<=n;i++)
{
int pi=find(i);
s[i]+=v[pi];
cout<<s[i]<<" ";
}
return 0;
}