对拍

对拍在oi中有很大的用处(我居然现在才会...)

首先我们先制作一个数据生成器

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
int main()
{     srand(time(0));
      printf("%d %d",rand(),rand());
      return 0;
}
我们经过统计可得随机数据的范围是[0,32767],那对于一些数据范围显然是不行的,所以我们推导出一个公式:对于[a,b]的整数,生成方式为int(double(rand())/32767*(b-a))+a,而小数去掉int即可。

那我们在制作完数据生成器后在搞一个对拍器

#include<windows.h>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
int main()
{     int t=1000;
      while(t--){
          system("data > test.in");
          system("baoli < test.in > baoli.out");
          system("zj < test.in > zj.out");
          if(system("fc baoli.out zj.out"))break;
      }
      return 0;
}
t是任意取的

posted @ 2018-04-27 19:58  水题收割者  阅读(175)  评论(0编辑  收藏  举报