数据生成器

来源:互联网 发布:mac 相册导入u盘 编辑:程序博客网 时间:2024/05/20 17:42

数据生成器


决定要做数据生成器大集合


prufer编码做生成树

http://blog.csdn.net/nikelong0/article/details/50853122


mengbi_er友情赞助了一个树的数据生成器


#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<ctime>using namespace std;int read(){char ch=getchar();int f=0;while(ch<'0'||ch>'9') ch=getchar();while(ch>='0'&&ch<='9') {f=f*10+(ch^48);ch=getchar();}return f;}int rando(){return (rand()<<15)|rand();}int num[50005],fa[50005],tim[50005];int main(){srand(time(NULL));int n,k;cin>>n;cout<<endl;for(int i=1;i<=n;i++)num[i]=i;for(int i=2;i<=n;i++)tim[i]=i;for(int i=1;i<=500000;i++){swap(num[rando()%n+1],num[rando()%n+1]);swap(tim[rando()%(n-1)+2],tim[rando()%(n-1)+2]);}/*fa[2]=1;fa[3]=1;for(int i=4;i<=n;i++){if(i&1){fa[i]=i-3;}elsefa[i]=i-2;}*///只有左节点有儿子的二叉树 /*for(int i=2;i<=n;i++){fa[i]=i/2;}*///完全二叉树 /*for(int i=2;i<=n;i++){fa[i]=i-1;}*///链 /*for(int i=2;i<=n;i++){fa[i]=rando()%(i-1)+1;}*///随机树 /*for(int i=2;i<=n;i++){fa[i]=1;}*///菊花 /*for(int i=2;i<=40000;i++){fa[i]=1;}for(int i=40001;i<=n;i++){fa[i]=rando()%(i-1)+1;}*///乱搞什么的 for(int i=2;i<=n;i++){if(rand()&1){printf("%d %d\n",num[fa[tim[i]]],num[tim[i]]);}else{printf("%d %d\n",num[tim[i]],num[fa[tim[i]]]);}}}


原创粉丝点击