0712-插曲-对拍

今天下午的时候听yyy学长讲了讲对拍,下面总结一下下

对拍是什么?

大概就是拿你自以为的正解与你实实在在写的暴力,进行输出比较。相当于与标答进行比较(前提你的暴力是正确的)然后发现不同的地方,对“正解”程序进行修改,这样可以提高你算法的正确性。

怎么对拍呢?

首先你要有输入数据吧,而且必须是随机的,按照题目要求的输入。那么我们就需要一个make.cpp啦,其作用就是生成随机数据

然后把“正解”和暴力(都要用文件输入输出哦,输入文件一样但输出文件不能一样)搞出来,和make放在一个文件夹里

接着你就可以人工比较啦

但怎么可能那么弱智,如果要拍十几万的数据呢?

所以我们需要一个叫pia.bat的鬼东东,帮我们进行输出的比较,并且在答案有不同的情况时反馈给我们

最后对拍就搞完啦~,具体操作细节如下

生成随机数据的cpp怎么写?

这个主要看题目要求(数据的格式及范围)

重点是这个srand(time(0)),给随机函数一个种子(就是取计算机当前的时间)

然后输出文件这样写

freopen("   .in","w",stdin);

pia.bat怎么搞?

就记住模板就好啦

@echo off

:loop

make    //随机生成数据的cpp的名字

bf        //暴力的名字

dance    //正解的名字

fc dance.out bf.out    //比较两个输出

if errorlevel 1 pause   //如果不同,就停下

goto loop   //否则继续拍

细节问题

就是不要拍太久了,差不多就行了。等会你拍久了,就会发生玄学错误,比如电脑死机,发出bibibibi的声音等,你最好别在考场上这样搞

猜你喜欢

转载自blog.csdn.net/weixin_42557561/article/details/81023508