ubuntu下的程序对拍

对拍是一个很重要的技巧,无论是在比赛中还是平时的做题中,对拍往往能轻易发现自己的错误所在或验证自己算法的真实性

首先我们需要两个程序,一个确定的暴力程序,还有一个是你的不确定的“标程”

然后我们需要一个数据生成器,会用rand函数一般就很容易写出来,用ran.in输出即可

最后我们需要一个程序来验证两个程序给出的结果相不相同,下面给出我的代码方便大家参考(方便我蒯

#include<bits/stdc++.h>
using namespace std;
int ca;
int main()
{
    while(1)
    {
        if(ca)
            cout<<ca<<" AC"<<endl;
        system("./ran");
        system("./a");
        system("./b");
        ca++;
    }while(!system("diff 1.out 2.out"));
    cout<<ca<<" WA";
    return 0;
}

这样对拍能给出可以hack掉你的数据和你的错误输出,方便调试,对拍大法好!

猜你喜欢

转载自www.cnblogs.com/dzice/p/12194204.html