对拍

关于对拍

自己也是学过OI的人,怕自己哪一天退役了都悄无声息,就仿佛没有来过一样,因此想尽可能的,在自己的心里留下自己存在过的回忆…

第一步

建一个名字叫做duipai的文件夹

第二步

在文件夹下放入名为b.cpp,z.cpp,shuju.cpp,分别为自己的暴力,正解,和随机数据

并分别建立对应的txt文档

注意:请分别运行出exe文件!

第三步

写对拍程序:

给出一种模板:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
using namespace std;

int i;

signed main()
{
while (1)
{
system("shuju.exe > shuju.txt");
double t1 = clock();
system("b.exe < shuju.txt > b.txt");
double t2 = clock();
system("z.exe < shuju.txt > z.txt");
double t3 = clock();
if (system("fc b.txt z.txt")) break;
printf ("%d %d %d\n", ++ i, (int)(t2 - t1), (int)(t3 - t2));
}
puts("ERROR!");
return 0;
}
  • \(system("shuju.exe > shuju.txt")\)可以形象理解为,把exe的东西流向txt,也就是输入进去
  • \(system("b.exe < shuju.txt > b.txt")\)把txt文档里面的内容流到b.exe里面去,并把其答案输出到b.txt
  • \(system("z.exe < shuju.txt > z.txt")\)同理

别的自己理解不难

一个很有用的小细节:有时候打开对拍程序,他会一动不动的,所以我们每次修改完b.cpp/z.cpp/shuju.cpp之后都要在对拍程序里面随机修改一个地方,并保存,比如说,我可以每次删去一个分号,再加上,告诉系统我们已经修改过,然后再运行就会正常对拍了


预祝每一个进行对拍的同学,都可以得到自己满意的结果