昨天碰到一道题目,样例过了,但是一交就wa,所以就想着能不能找出错的测试数据,又因为之前一直听说可以用对拍来检测程序正确性,所以昨天就看了别人博客学了下对拍。
接下来介绍下简单的bat文件对拍,用c++程序对拍的暂时还不会 。
整体步骤:
首先对拍,需要有产生测试数据的程序,暴力方法的程序(或者已ac的程序),需要对拍的程序,先写好这些程序,再分别编译生成可执行的exe文件,然后就是新建一个data.txt(存放测试数据),一个baoli.txt(存储暴力程序输出的数据),一个test.txt(存储对拍程序输出的数据),最后再新建一个dp.bat文件(可以关闭Windows的隐藏文件后缀名选项,然后新建一个txt文件,将后缀改成bat即可),然后在bat文件里面编辑数据输入输出和文件匹配的代码就可以,这个有模板,照着套就行。最后将所有文件和bat文件放在同一个的位置,双击bat文件运行对拍程序。
简单的产生测试数据的程序(以hdu4135示例)
#include<ctime>//两个随机数
#include<cstdlib>//必要头文件
#include<cstdio>
#define pr1(X) printf("%d\n",X)
#define pr2(X,Y) printf("%d %d\n",X,Y)
#define pr3(X,Y,Z) printf("%d %d %d\n",X,Y,Z)
#define pr4(X) printf("%lld\n",X)
#define pr5(X,Y) printf("%lld %lld\n",X,Y)
#define pr6(X,Y,Z) printf("%lld %lld %lld\n",X,Y,Z)
#define REP1(i,X) for(int i=0;i<X;i++)
#define MAXN 1000
using namespace std;
typedef long long ll;
long long random1(long long n){
return (long long