对拍程序写法

在竞赛中,常常会遇到这么一个问题,前几个点过了,然后被毒瘤数据卡住了,但是又不知道问题在哪。

这时候,如果时间充裕的话,可以写一个对拍程序。

大概的思路是这样的,先写一个生成测试数据的程序,注意要使用srand(time(0));来保证rand()函数每次生成的随机数都不一样。然后将自己的WA掉代码编译出来,再写一个纯暴力的程序,即保证结果完全正确的程序。通过对拍程序,将两者的结果比对,从而找出问题所在。

示例代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int t=100;//这里是循环的次数
    while(t--)
    {
        system("data>data.in");
        system("program1<data.in>program1.out");
        system("program2<data.in>program2.out");
        if(system("fc program1.out program2.out")) break;
    }
    system("pause");
    return 0;
}

这样子就可以实现自动比对了

发表评论

电子邮件地址不会被公开。 必填项已用*标注