码迷,mamicode.com
首页 > 其他好文 > 详细

关于对拍

时间:2017-02-24 22:33:22      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:pre   可见   error   批处理文件   size   family   意思   冒号   条件   

以前傻傻地以为对拍在竞赛中不怎么起作用(可见我以前有多单纯),但现在发现,高手都用这个,所今天就好好的学了下对拍。

首先说一下对拍有什么用,它主要用来测试你的程序是否完美,在竞赛时期属于一种辅助性的东西,因为很多时候竞赛题目给出的数据都不具有特例性,所以有时即使你样例过了却不意味着你全过,所以要用到它。

 

首先,来说一下对拍要用到的“东西”--------------> 数据生成程序 + 暴力或其他人的AC程序 + 你自己的程序 

那下面就先给出对拍的代码:(先用txt文件保存,然后把后缀改成 " .bat ")

1 :again
2 data > input.txt
3 Accode < input.txt > Accode_output.txt
4 Mycode < input.txt > Mycode_output.txt
5 fc Accode_output.txt My_output.txt
6 if not errorlevel 1 goto again
7 pause

   那么现在就来解释一下这段代码

  首先说一下第一行“ :again” ,冒号后面的其实是一个标号,与第六行的“goto"有关,学过c++或c语言的人大概都知道了,就是如果满足第六行的条件(not errorlevel 1)就”跳“到第一行重新开始

  第二行的"data"其实是一个程序名称,就是前面所说的代码生成程序,而”data“后面的 "  >  " 符号的意思就是将 "data" 程序打印出来的数据输入到 ”input.txt"中

  接下来第三行 "Accode" 是一个正确的程序名称,其后的"<"符号的意思大概聪明机智的你已经猜到了,它的作用是把刚才生成的“input.txt”塞到你找到的正确程序当中,而后的“>"符号作用和第二行的是一样的,也是将程序的输出数据保存到文件当中,不过当前文件名是”Accode_output.txt"

  第四行的作用和第三行一样,只不过换了一个程序名“Mycode",就是你自己写的程序,这里不再赘述

 第五行中的”fc" 其实是一个比较函数,它用来比较“Accode_output.txt”文件和“Mycode.output.txt”文件,就是比较刚才生成的两个文件,第六行的意思是如果上面所比较的两个文件无差异就转到标号”again“,如果有差异则暂停批处理文件。

那么到现在,对拍已经讲完,但有一些需要注意的地方

   1.记得对拍需要用到的“东西”,数据生成程序 + 暴力或其他人的AC程序 + 你自己的程序 ,记得是程序!是程序!!不是代码!

   2.上面代码中的程序名可以自行更改

   3.如果数据生成函数中也有你需要塞进去的数据,可以参考第二行与第三行(好好体会)。

 

                                                                                                                                                                                                                                  博主:WBH

 

关于对拍

标签:pre   可见   error   批处理文件   size   family   意思   冒号   条件   

原文地址:http://www.cnblogs.com/bingdada/p/6440460.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!