今天终于学会了对拍啦xd
对拍写法:
@echo off
:loop
rand.exe %random% > data.in
std.exe < data.in > std.out
my.exe < data.in > my.out
fc my.out std.out
if not errorlevel 1 goto loop
pause
goto loop
新建一个txt文件,然后把名字修改为xxx.bat 然后将std(考试的时候就是写的暴力)和自己的代码的exe文件(dev c++就编译一下)拖到同一个文件夹里,如果有不一样的话就会暂停,看一下数据,然后按任意键继续。
还需要一个生成随机数的文件 rand.exe
可以参考如下:
#include<bits/stdc++.h>
using namespace std;
#define random(a,b) ((a)+rand()%((b)-(a)+1))
stringstream ss;
int main( int argc, char *argv[] )
{
int seed=time(NULL);
if(argc)//如果有参数
{
ss.clear();
ss<<argv[1];
ss>>seed;//把参数转换成整数赋值给seed
}
srand(seed);
//以上为随机数初始化,请勿修改
//random(a,b)生成[a,b]的随机整数
//以下写你自己的数据生成代码
int n=1000,m=100;
printf("%d %d\n",n,m);
for(int i=1 ; i<=n ; ++i){
printf("%d ",random(1,n));
}
return 0;
}
或者朴素的
@echo off
:loop
rand.exe > data.in
my.exe < data.in > myout.txt
std.exe < data.in > stdout.txt
fc myout.txt stdout.txt
if not errorlevel 1 goto loop
pause
goto loop
+朴素的生成器