c++对拍程序(bat文件版)
昨天碰到一道题目,样例过了,但是一交就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文件版)相关推荐
- windows设置定时任务用浏览器打开指定网址(任务计划程序+bat文件)
上一篇文章博主给大家整理了<windows设置定时任务>的方法,不会的伙伴可以自行脑补.这次再给大家升级一下,用win10的[任务计划程序]打开浏览器中的网址 1.创建bat文件 首先写个 ...
- python 购物车程序_Python 购物车程序(文件版)
''' 购物车程序 用户入口: 1.商品信息存在文件里 2.已购商品,余额记录 商家入口: 1.可以添加商品,修改商品价格 ''' filePath = "D:\Python_work\Lp ...
- 【实用】关于Ubuntu下的对拍程序
学了这么久的OI还不会对拍,下定决心准备学对拍,上网一搜,全是在Windows下对拍的*.bat*文件,然而Ubuntu表示水土不服,~~竟然有度娘搜不到的东西,~~最后还是找同机房cgz神犇要的对拍 ...
- Python 名片管理系统(文件版,可存档读档)
Python 名片管理系统(文件版,可存档读档) 相比于函数版的程序,文件版增加了存档读档操作 函数版的可以参考Python名片管理系统(列表.字典和函数的综合应用) 以下是新增部分的代码(不包括调用 ...
- bat文件指定jdk路径_配置点击就能运行Python程序的bat批处理脚本(Windows)
0,需求说明 在编写和调试程序时,一般我们会在集成编辑环境里写代码和运行,但如果程序比较完善需要快速运行,或者让同事在其他电脑上快速运行时,再打开IDE(Integrated Development ...
- bat文件改成sh文件在linux上运行java程序
最近公司迁移服务器,从windows系统改为linux系统,里面有一些老程序是直接用bat文件启动的. 在linux中需要启动.sh文件才行,所以需要将bat文件改成sh文件才行 先粘出bat文件和s ...
- C#【必备技能篇】使用批处理脚本(.bat文件)打开控制台应用程序
背景: 有时,需要使用.bat文件来运行一个.exe程序(一般是控制台应用程序),可以点击bat文件运行C#写的控制台应用程序. 示例: [1]Test.exe程序 和 click.bat文件 放在一 ...
- 打开bat文件闪退以及‘java‘不是内部或外部命令,也不是可运行的程序或批处理文件【本人亲测解决方法】
最近在打开moa.bat文件的时候遇到了一个问题:双击打开之后一闪而过,什么都没有.(就是bat文件打不开,我还说这么多作甚) Windows系统 首先针对一闪而过提出解决方案: 鼠标右击bat文件, ...
- 开机后自动执行bat文件中的python程序,自动登录软件进行功能配置
文章目录 1.bat文件 2.使用pyautogui进行自动点击 1.bat文件 bat文件的作用是可以和cmd命令行一样自动执行,将其放置到开机自启动文件夹中,便可以实现开机后的自动执行. 开机自启 ...
最新文章
- 肠·道 | 邱琇:靓汤/烧香影响母婴健康?看巨大出生队列如何揭秘!
- POJ.3648.Wedding(2-SAT)
- sql注入——day02
- 如何卸载MySQL8.0.11_win10安装mysql8.0.11卸载5.7
- 百度编辑器图片上传 java_百度编辑器粘贴图片自动上传到服务器(Java版)
- API的过去,现在与未来
- jquery 乱码 传参_jquery ajax传递中文参数乱码问题及解决方法说明
- jquery 停止动画_jQuery停止动画
- 白盒测试的学习之路----(五)TestNG的参数分离
- java 彻底删除文件_如何删除java文件
- linux clac countif的使用
- CPU性能排行与评分
- 解决CPU风扇转速为“0”的问题
- PE 022 Names score
- CC254x到CC2640
- 【Paper】ConvLSTM:Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting
- 内网ip如何变成公网ip?快解析转换域名映射外网访问
- 如何用js实现简单的页面html动态加载(“看更多“/页面折叠功能)
- 昌邑市文山中学2021高考成绩查询,昌邑文山中学关注学生特长 做合适学生发展的教育...
- ios AVPlayer无法在线播放视频