随机生成及对拍(未完成 别看 啥也没有)
define random(a,b) (1llrand()rand()rand()rand()%((b)-(a)+1)+(a))
随机生成[a,b]的数
点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define inf 0x3f
#define INF 0x3f3f3f3f
#define mst(a,b) memset(a,b,sizeof(a))
#define Elaina 0
const int N = 100000000;
int random(int n){
return rand()*rand()%n;
}
int n,m;
int a[N];
void A(){//整数序列
// 随机生成n<=10^5个绝对值在10^9之内的整数
n=random(100000)+1,m=1e9;
for(int i=1;i<=500;i++){
a[i]=random(2*m+1);
}
}
pair<int,int> e[500000];
map<pair<int,int>,bool> h;
void tu(){//无重边图
n=50,m=250;
for(int i=1;i<n;i++){
int fa=random(i)+1;
e[i]=make_pair(fa,i+1);
h[e[i]]=h[make_pair(i+1,fa)]=1;
}
for(int i=n;i<=m;i++){
int x,y;
do{
x=random(n)+1,y=random(n)+1;
}while(x==y||h[make_pair(x,y)]);
e[i]=make_pair(x,y);
h[e[i]]=h[make_pair(y,x)]=1;
}
random_shuffle(e+1,e+1+m);
for(int i=1;i<=m;i++){
printf("%lld %lld\n",e[i].first,e[i].second);
}
}
main(){
srand((unsigned)time(0));
tu();
}
以下是一对拍样板
https://files.cnblogs.com/files/blogs/816729/对拍1.zip?t=1718676029&download=true