对拍学习笔记
对拍
一,背景
在各种考试的赛场上,经常会有一些童鞋打了一个自己所认为的正解,但是他不知道这个做法是否正确,或者不能确定自己的代码是否正确了。经常会有一些童鞋,因为各种千奇百怪的错误,错失各种规模大小的分数,空余悲切。
非常显然的是,正解相较于暴力的优点,十有八九都是跑得快,但是他们的答案都是一样的,所以在检查正解的正确性的时候,我们可以直接忽略掉时间的因素,仅考虑结果是否正确。
这时候我们就需要对拍了。
以上都是废话,下面进入正题。
二,原理
对拍的原理其实非常简单:
1, 随机各种数据(只要符合输入格式即可)
2, 分别引用运行暴力和正解并记录两者结果
3, 最后比对一下两个结果是否一致
是不是很好理解?
那么要怎么代码实现呢?
Windows下:

Linux下:

做几个小解释
1, system是引用运行的意思
2, 为了避免偶然性,对拍的数据肯定是要多一点的,所以要一直循环(随你多少次)
3,Windows下的system里的那一坨东西是该程序的地址,一般在文件夹里复制粘贴就可以了;Linux下的同理,前面三行的是编译的意思,循环里的是运行
4, fc和diff是比较的意思,相同为0不同为1
5, begin 和end 是用来记录正解代码运行时间的
6, sleep的作用是停顿1s,目的是让srand(time(0))中的time(0)可以取到不同的随机种子,每隔1s换一次
谢谢阅读!!!

浙公网安备 33010602011771号