提供一个数据生成器以造福后人
查看原帖
提供一个数据生成器以造福后人
993065
nnn233楼主2025/5/19 20:04
#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize(3,"Ofast","inline")
const int mod=1e9+7;
const int N=1e5;
int q,a[N];
const int n1=5,n2=5,m=5,w=100;//可自行调参
inline int rnd(){
    int f=0;
    // f=rand()%2;
    if(f)f=-1;
    else f=1;
    if(rand()%100==0)return f*rand()%w+1;
    else return f*(rand()<<16|rand())%w+1;
}
inline void tree(int k){
    int p[N],f[N],d[N];
    for(int i=1;i<=n2;i++)p[i]=f[i]=d[i]=0;
    for(int i=1;i<=n2-2;i++)p[i]=rnd()%n2+1,d[p[i]]++;p[n2-1]=n2;
        for(int i=1,j=1;i<n2;i++,j++){
            while(d[j])++j; f[j]=p[i];
            while(i<n2&&!--d[p[i]]&&p[i]<j)f[p[i]]=p[i+1],++i;
        }
    for(int i=1;i<n2;i++)cout<<i<<" "<<f[i]<<"\n";
}
inline void qj(int k){
    int x,l,r;
    for(int i=1;i<=k;i++){
        x=rand()%n1,l=rand()%n1+1,r=rand()%n1+1;
        if(l>r)swap(l,r);
        if(x==0)printf("%d %d\n",l,l);
        else printf("%d %d\n",l,r);
    } 
}
signed main(){
    srand(time(NULL));
    // freopen("in.in","w",stdout);
    printf("%d %d %d\n",n1,n2,m);
    for(int i=1;i<=n1;i++){
        printf("%d %d %d\n",rnd()%n2+1,rnd()%n2+1,rnd());
    }
    tree(n2);
    for(int i=1;i<=m;i++){
        int opt=rand()%3+1;
        printf("%d ",opt);
        if(opt==1)qj(1);
        if(opt==2)printf("%d\n",rand()%n2+1);
        if(opt==3)printf("%d\n",rand()%n2+1);
    }
    return 0;
}
2025/5/19 20:04
加载中...