随机生成及对拍(未完成 别看 啥也没有)

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

posted @ 2024-04-04 21:48  Elaina_0  阅读(28)  评论(3编辑  收藏  举报
浏览器标题切换
浏览器标题切换end