在信息学竞赛中,尤其是考试的时候,经常会出现把水题写水的情况,而题目那一两个单薄的测试数据常常不足以让我们发现自己程序中的BUG。在竞赛时,水题悲剧了的话下场一定会很惨。在这种情况下,我们可以采用写一个对拍程序的方法来大大降低出错的可能。
基本思路是对于一道题目来讲,写出高效算法后,时间充裕的情况下再写一个纯暴力的算法,写一个数据生成器,对你的程序和暴力程序的结果进行比对,出现错误后就人工检查。一般来讲数据范围一开始可以小一点,小数据过了以后再慢慢扩大,为保证正确性你在写下一题的时候可以让对拍程序一直跑着。
这里的关键是要写一个批处理让Windows不停地反复执行这一操作,代码如下。
@echo off
:loop
datamaker
std
myprogram
fc ans.out std.out
if not errorlevel 1 goto loop
pause
go to loop
在文本文档中写好以后,扩展名保存为bat即可直接运行。