提交时间:2026-01-10 15:13:18

运行 ID: 39459

#include<bits/stdc++.h> #define int long long #define doub long double #define PII pair<int,int> #define fir first #define sec second #define lb(x) ((x)&(-(x))) #define ctz __builtin_ctzll #define clz __builtin_clzll #define PC __builtin_popcountll #define lc(p) ((p)<<1) #define rc(p) ((p)<<1|1) #define endl '\n' using namespace std; const int N=2e5+7,mod=998244353; set<int> S[N]; int n,k,a[N],b[N],p[N]; int vis[N],bel[N],cnt; set<int> R[N]; inline void DFS(int u){ if(vis[u])return; vis[u]=1;bel[u]=cnt; DFS(p[u]); } inline void slv(){ cin>>n>>k; for(int i=1;i<=n;i++)p[i]=i,S[i].insert(i); for(int i=1;i<=k;i++){ cin>>a[i]>>b[i]; swap(p[a[i]],p[b[i]]); S[a[i]].insert(p[a[i]]); S[b[i]].insert(p[b[i]]); } for(int i=1;i<=n;i++)if(!vis[i]){ ++cnt; DFS(i); } for(int i=1;i<=n;i++)for(auto x:S[i])R[bel[x]].insert(i); for(int i=1;i<=n;i++)cout<<R[bel[i]].size()<<endl; } signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #ifndef ONLINE_JUDGE freopen("1.in","r",stdin); freopen("1.out","w",stdout); #endif // int T;cin>>T; // while(T--) slv(); return 0; }