跑数据模板
makedata
# include<bits/stdc++.h>
using namespace std;
const bool flag=false; //默认无权树
const int N_[30]={0,10,10,100,1000,10,1000,10,1000,50,1000,10000,50000,100000,100000,100000,100000,100000,100000,100000,100000};
const int M_[30]={0,10,10,20,20,20,100,100,100,500,500,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000};
bool f[110000]={};
int Rint()
{
return (rand()|(long long)rand()<<15)%1000000;
}
//data_maker
int ans_[129],temp=0;
int n;
void MKNtree(int id)
{
for (int i=2;i<=n;i++)
if (!flag) cout<<i<<' '<<Rint()%(i-1)+1<<endl;
else cout<<i<<' '<<Rint()%(i-1)+1<<' '<<Rint()%M_[id]<<endl;
}
struct node
{
int id,num;
} Num[1001000];
bool mycmp(node x, node y)
{
return x.num<y.num;
}
void Mpermu(int n)
{
memset(Num,0,sizeof(Num));
for (int i=1;i<=n;i++) Num[i].id=i,Num[i].num=Rint();
sort(Num+1,Num+n+1,mycmp);
}
void Mline(int id)
{
memset(Num,0,sizeof(Num));
Mpermu(n);
for (int i=1;i<n;i++)
if (!flag) cout<<Num[i].id<<' '<<Num[i+1].id<<endl;
else cout<<Num[i].id<<' '<<Num[i+1].id<<' '<<Rint()%M_[id]<<endl;
}
void Mchry(int id)
{
int root=Rint()%n+1;
for (int i=1;i<=n;i++)
if (i!=root)
if (!flag) cout<<i<<' '<<root<<endl;
else cout<<i<<' '<<root<<' '<<Rint()%M_[id]<<endl;
}
void Mtara(int id)
{
int T=n/2;
Mpermu(T);
for (int i=1;i<T;i++)
if (!flag) cout<<Num[i].id<<' '<<Num[i+1].id<<endl;
else cout<<Num[i].id<<' '<<Num[i+1].id<<' '<<Rint()%M_[id]<<endl;
int root=Num[1].id;
for (int i=T+1;i<=n;i++)
if (!flag) cout<<i<<' '<<root<<endl;
else cout<<i<<' '<<root<<' '<<Rint()%M_[id]<<endl;
}
void work(int id)
{
n=N_[id];
cout<<n<<endl;
cout<<Rint()%n+1;
for (int i=2;i<=n;i++) cout<<' '<<Rint()%n+1;
cout<<endl;
if( (id<=4) ||(id >=11)&& id<=14) MKNtree(id);
//涓€鑸殑鏍?
if( (id>=5 && id<=6) ||(id >=15)&& id<=16) Mline(id);
//閾?
if( (id>=7 && id<=8) ||(id >=17)&& id<=18) Mchry(id);
//鑿婅姳鍥?
if( (id>=9 && id<=10) ||(id >=19)) Mtara(id);
//钂插叕鑻?
}
int a[110];
char order[110];
int main()
{
srand( (int)time( NULL ) );
for(int _index=1;_index<=20;_index++)
{
sprintf(order,"tree%d.in",_index);
freopen(order,"w",stdout);
work(_index);
fclose(stdout);
}
return 0;
}

浙公网安备 33010602011771号