昨天碰到一道题目,样例过了,但是一交就wa,所以就想着能不能找出错的测试数据,又因为之前一直听说可以用对拍来检测程序正确性,所以昨天就看了别人博客学了下对拍。

接下来介绍下简单的bat文件对拍,用c++程序对拍的暂时还不会 。

整体步骤
首先对拍,需要有产生测试数据的程序,暴力方法的程序(或者已ac的程序),需要对拍的程序,先写好这些程序,再分别编译生成可执行的exe文件,然后就是新建一个data.txt(存放测试数据),一个baoli.txt(存储暴力程序输出的数据),一个test.txt(存储对拍程序输出的数据),最后再新建一个dp.bat文件(可以关闭Windows的隐藏文件后缀名选项,然后新建一个txt文件,将后缀改成bat即可),然后在bat文件里面编辑数据输入输出和文件匹配的代码就可以,这个有模板,照着套就行。最后将所有文件和bat文件放在同一个的位置,双击bat文件运行对拍程序。

简单的产生测试数据的程序(以hdu4135示例)

#include<ctime>//两个随机数
#include<cstdlib>//必要头文件
#include<cstdio>
#define pr1(X) printf("%d\n",X)
#define pr2(X,Y) printf("%d %d\n",X,Y)
#define pr3(X,Y,Z) printf("%d %d %d\n",X,Y,Z)
#define pr4(X) printf("%lld\n",X)
#define pr5(X,Y) printf("%lld %lld\n",X,Y)
#define pr6(X,Y,Z) printf("%lld %lld %lld\n",X,Y,Z)
#define REP1(i,X) for(int i=0;i<X;i++)
#define MAXN 1000
using namespace std;typedef long long ll;
long long random1(long long n){return (long long)rand()*rand()%n;
}
int random2(int a,int b){return (long long)rand()*rand()%(b-a+1)+a;//QuJian
}
double random3(int n){return (rand()%n)/10;//XiaoShu
}int main(){srand((unsigned)time(NULL));int t=rand()%100+1;pr1(t);REP1(i,t){ll a=random1(1e15)+1,b,n=1+random1(1e9),temp=random1(1e15);//定义数据范围if(a+temp>1e15){b=1e15;}else{b=a+temp;}pr6(a,b,n);//按照手动输入数据的格式运用printf函数}
}

(当然还可以写随机生成图,树等数据结构,算法竞赛进阶指南后有此介绍)

然后暴力程序代码和要对拍的程序代码正常写即可,没有什么限制。
生成好三个可执行exe文件,再创建好存储输入输入数据的txt文件,再就是建立bat文件。

鼠标右键,点击编辑选项,输入下列模板(文件名改成自己的)

@echo off
:loop你的生成数据的可执行exe文件的位置\data.exe > data.txt你的ac或者暴力的可执行exe文件的位置\ac.exe < data.txt > ac.txt你的要对拍的可执行exe文件的位置\test.exe < data.txt > test.txtfc ac.txt test.txtif not errorlevel 1 goto loop
pause
goto loop

代码简单解释下
@echo off 关闭系统提示信息,不关会让对拍过程很混乱。
:loop 循环执行下面的过程
<,> 输出,输入数据
fc 比较两个文件
if not errorlevel 1 goto loop 如果执行fc后得到返回值为0(两文件相同)则继续进入循环过程
否则pause(暂停)
最后可以按任意键goto loop继续进入循环。
ctrl c可强制退出循环

对拍过程中比对到答案不同,会暂停对拍,然后data.txt,ac.txt和test.txt存储的就是答案不同的那一系列数据。

c++对拍程序(bat文件版)相关推荐

  1. windows设置定时任务用浏览器打开指定网址(任务计划程序+bat文件)

    上一篇文章博主给大家整理了<windows设置定时任务>的方法,不会的伙伴可以自行脑补.这次再给大家升级一下,用win10的[任务计划程序]打开浏览器中的网址 1.创建bat文件 首先写个 ...

  2. python 购物车程序_Python 购物车程序(文件版)

    ''' 购物车程序 用户入口: 1.商品信息存在文件里 2.已购商品,余额记录 商家入口: 1.可以添加商品,修改商品价格 ''' filePath = "D:\Python_work\Lp ...

  3. 【实用】关于Ubuntu下的对拍程序

    学了这么久的OI还不会对拍,下定决心准备学对拍,上网一搜,全是在Windows下对拍的*.bat*文件,然而Ubuntu表示水土不服,~~竟然有度娘搜不到的东西,~~最后还是找同机房cgz神犇要的对拍 ...

  4. Python 名片管理系统(文件版,可存档读档)

    Python 名片管理系统(文件版,可存档读档) 相比于函数版的程序,文件版增加了存档读档操作 函数版的可以参考Python名片管理系统(列表.字典和函数的综合应用) 以下是新增部分的代码(不包括调用 ...

  5. bat文件指定jdk路径_配置点击就能运行Python程序的bat批处理脚本(Windows)

    0,需求说明 在编写和调试程序时,一般我们会在集成编辑环境里写代码和运行,但如果程序比较完善需要快速运行,或者让同事在其他电脑上快速运行时,再打开IDE(Integrated Development ...

  6. bat文件改成sh文件在linux上运行java程序

    最近公司迁移服务器,从windows系统改为linux系统,里面有一些老程序是直接用bat文件启动的. 在linux中需要启动.sh文件才行,所以需要将bat文件改成sh文件才行 先粘出bat文件和s ...

  7. C#【必备技能篇】使用批处理脚本(.bat文件)打开控制台应用程序

    背景: 有时,需要使用.bat文件来运行一个.exe程序(一般是控制台应用程序),可以点击bat文件运行C#写的控制台应用程序. 示例: [1]Test.exe程序 和 click.bat文件 放在一 ...

  8. 打开bat文件闪退以及‘java‘不是内部或外部命令,也不是可运行的程序或批处理文件【本人亲测解决方法】

    最近在打开moa.bat文件的时候遇到了一个问题:双击打开之后一闪而过,什么都没有.(就是bat文件打不开,我还说这么多作甚) Windows系统 首先针对一闪而过提出解决方案: 鼠标右击bat文件, ...

  9. 开机后自动执行bat文件中的python程序,自动登录软件进行功能配置

    文章目录 1.bat文件 2.使用pyautogui进行自动点击 1.bat文件 bat文件的作用是可以和cmd命令行一样自动执行,将其放置到开机自启动文件夹中,便可以实现开机后的自动执行. 开机自启 ...

最新文章

  1. 肠·道 | 邱琇:靓汤/烧香影响母婴健康?看巨大出生队列如何揭秘!
  2. POJ.3648.Wedding(2-SAT)
  3. sql注入——day02
  4. 如何卸载MySQL8.0.11_win10安装mysql8.0.11卸载5.7
  5. 百度编辑器图片上传 java_百度编辑器粘贴图片自动上传到服务器(Java版)
  6. API的过去,现在与未来
  7. jquery 乱码 传参_jquery ajax传递中文参数乱码问题及解决方法说明
  8. jquery 停止动画_jQuery停止动画
  9. 白盒测试的学习之路----(五)TestNG的参数分离
  10. java 彻底删除文件_如何删除java文件
  11. linux clac countif的使用
  12. CPU性能排行与评分
  13. 解决CPU风扇转速为“0”的问题
  14. PE 022 Names score
  15. CC254x到CC2640
  16. 【Paper】ConvLSTM:Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting
  17. 内网ip如何变成公网ip?快解析转换域名映射外网访问
  18. 如何用js实现简单的页面html动态加载(“看更多“/页面折叠功能)
  19. 昌邑市文山中学2021高考成绩查询,昌邑文山中学关注学生特长 做合适学生发展的教育...
  20. ios AVPlayer无法在线播放视频

热门文章

  1. SUBTOTAL 函数的用法及应用实例
  2. Mac电脑在哪更改管理员账户昵称
  3. 深入探究指针及指针类型
  4. Android 中通过Canvas 与线程结合实现动画效果
  5. c语言 什么时候需要动态分配内存?
  6. Windows10下的超详细Java安装步骤
  7. 企业如何两步实现数据资产化?
  8. 科学计算与matlab语言期末答案,科学计算与MATLAB语言期末答案
  9. 回忆一下小时候的生活
  10. React 中hashhistory 与 browserhistory 的区别