技巧--对拍
yzh老师在清北学堂最后一天教的对拍:
-
创建一个文件夹
-
将你要对拍的源代码copy进去(例:test.cpp)
-
将你写好且确定无误的暴力代码也放进去,注意两者名字要有所区别(例:test__.cpp)
-
搞一个生成数据的代码(例:mkdata.cpp)
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#define For(i,l,r) for(int i=l;i<=r;i++)
int main(){
freopen("coin.in","w",stdout);
srand(time(0));
int n = 1000;
// printf("%d\n",n);
For(i,1,n) printf("%lf %lf\n",(rand()%200+100)/100.0,(rand()%200+100)/100.0);
}
这段代码能生成n行每行两个大于1,
且在1~3之间的高精浮点数
(佬师太喜欢用宏定义了)
- 最后撸个bat脚本
:loop
mkdata
test
test__
fc test.out test__.out
if errorlevel == 1 pause
goto loop
loop表示循环,然后是你要打开的.exe
所以注意,在打开脚本前我们一定要先运行一遍代码生成.exe。
fc是用来文件比较,
若有不符它就会暂停输出行字,具体还请读者实现。