对拍
对拍
前置知识
首先,听完了OYDS大奆的讲话,学费了很多,首先是可以加入几个工具栏指令来获得更严密的编译(就是能找到一些不容易发现的错误)。
首先,进入Dev-C++,点击【工具】,选择第一个【编译选项】,进入之后在上面的方框输入
-Wall -Wshadow -std=c++11
然后就可以了。
生成数据
进行对拍前,需要先编写生成数据的程序,必须用到的是随机数函数:
mt19937 rnd(time(0));
//当然,用这个必须提前加入指令:
//-std=c++11
一般地,使用就是通过:
int random_number = rand % [数据范围的上限];
//即生成数据范围内的随机数
可以根据题目的输入格式来进行生成(一般按照输入方式就行)
生成后一定记得输出!!!顺便添加适当的回车!!!
对拍
对拍本质上就是不断随机生成数据,代入自己的程序和正解来判断程序哪里有问题。
#include <bits/stdc++.h>
using namespace std;
int main()
{
static int cnt;
while(1)
{
if (cnt == 100)
{
cout << "恭喜你AC了这道题!!!!!!";
break;
}
system("生成.exe > a.in");
system("调试中的代码.exe < a.in > mine.out");
system("正解.exe < a.in > ac.out");
if(system("fc mine.out ac.out"))
{
break;
//如果运行出来的答案不同就停止。
}
cnt++;
}
return 0;
}
注意事项
-
- 记得把几个代码都编译完再进行对拍
-
- 一定要注意文件名与对拍程序里使用的文件名相同且一一对应

浙公网安备 33010602011771号