OI / ACM对拍方法

有时候程序WA了,但是找不到错误的数据,可以用对拍找错误数据

用对拍一般有两种情况
一种是比赛后拿到标答或者平时刷题能找到题解。
还有一种情况,就是比赛的时候额外打一份暴力解法,把暴力解法当成标答进行对拍。当然数据量比较大的时候,暴力解法会跑的比较慢,对拍起来效率也比较低。

对拍的具体做法

这里用a + b程序举例

首先在一个文件夹里面包含以下四个文件

我们要测试的代码 test.cpp

#include <bits/stdc++.h>
using namespace std;  
int main()
{ 
    int a,b;  
    cin >> a >> b; 
    cout << a + b << endl; 
    return 0;  
}

标答程序 biaoda.cpp

#include <bits/stdc++.h>
using namespace std;
int main() 
{
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d\n", a + b);
    return 0;
}

造数据的程序 data.cpp

#include <bits/stdc++.h>
using namespace std;
//ofstream cout("data.in");
int main()
{
	srand(time(0));
	//srand( (unsigned)time( NULL ) );
	//freopen("input.txt","w",stdout); 
	int a, b;
	a= rand() % 100 + 1, b = rand() % 100 + 1;
	printf("%d %d\n", a, b); 
	return 0;
}

以及一个对拍.txt文件,里面输入以下内容后,将后缀txt改为bat

:again
data > input.txt
biaoda < input.txt > biaoda_output.txt
test < input.txt > test_output.txt
fc biaoda_output.txt test_output.txt
if not errorlevel 1 goto again
pause

对三个cpp文件进行编译,生成3个exe文件,打开对拍.bat文件,就开始对拍了。


每次对拍,只要把自己的程序放入test.cpp文件,把标答放入biaoda.cpp文件,然后再在data.cpp文件写好随机数据,然后打开.bat文件即可开始对拍。

参考来源

博客
https://blog.csdn.net/code12hour/article/details/51252457

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值