https://ac.nowcoder.com/acm/contest/view-submission?submissionId=41630926
一条1到n按顺序链接的链即可卡成
而这个代码是可以过纯随机数据的。
数据生成器:
#include<bits/stdc++.h> #define maxn 300005 using namespace std; int Ran(){ return rand() << 15 | rand(); } int Ran(int a,int b){ return Ran() % (b-a+1) + a; } int F[maxn]; int Find(int u){ return !F[u] ? u : F[u] = Find(F[u]); } int main(){ srand(time(NULL)); freopen("3.in","w",stdout); int n = 300000 , m = 300000; printf("%d %d\n",n,m); for(int i=1;i<n;i++){ int u = i , v = i+1; for(;Find(u) == Find(v);u=Ran(1,n),v=Ran(1,n)); printf("%d %d %d\n",u,v,Ran(1,10000000)); F[Find(u)] = Find(v); } for(;m--;){ printf("%d %d\n",1,Ran(1,n)); } }
全部评论
(2) 回帖