对拍

参考博客
晚上不想刷题。。无聊的开始研究对拍
以前oi的时候看过对拍,奈何当时水平太差根本用不上对拍,(现在水平也不咋地。。)
上面那个博文讲的非常好。。
对拍最终的就是 对拍程序.bat

首先第一步:生成一组输入数据。
我们假设你已经写好了一个数据生成器,编译成rand.exe并放在当前目录下了,那么我们只要把这个程序的输入重定向到一个文件就行了,如果你直接在源码里操作,还得各种文件流重定向烦得要死。在批处理命令里很简单,就一句话:

rand.exe > in.txt

是不是很简单明了?
那怎么把文件输入到一个程序里去呢?没错:

my.exe < in.txt
std.exe < in.txt

my.exe是你写的错误程序,std.exe是标程
那怎么把两个程序的输出再重定向到文件里去呢?也很简单:

my.exe < in.txt > myout.txt
std.exe < in.txt > stdout.txt

是不是相当方便?
接下来就是比较myout.txt和stdout.txt了,也不用你手写判断程序,windows自带一个比较命令:fc(file compare)

fc myout.txt stdout.txt

如果两个没有差异,会显示:找不到差异,否则会显示不同的附近的几行的文本。

汇总一下:

rand.exe > in.txt
my.exe < in.txt > myout.txt
std.exe < in.txt > stdout.txt
fc myout.txt stdout.txt

好,这样一个简易版对拍程序就写好了。但这个功能也太简陋了,只能对拍一次,要是数据难找点岂不是要你运行到手酸?
有人就问了,能不能循环?答案是:可以!

@echo off  
:loop  rand.exe > in.txtmy.exe < in.txt > myout.txtstd.exe < in.txt > stdout.txtfc myout.txt stdout.txt
if not errorlevel 1 goto loop  
pause
goto loop

别懵逼,一行行给你解释。
首先@echo off 是关掉输入显示,不然你的所有命令都会显示出来的,防止刷屏。
:loop是定位标记点,和c语言里的goto很像。
中间是主体程序。
if not errorlevel 1 goto loop ,errorlevel 是上一个命令的返回值,fc在文件不同时返回1,相同时返回0,这一行的意思就是,如果fc返回的不是1,就跳到:loop,使劲循环。
pause,暂停,一旦fc返回1,就会执行到这一行,停住程序,给你时间看数据。
goto loop,看完数据,按下任意键结束暂停,继续循环。

这样一来功能就顿时强大起来了,为了纪念这么伟大的改进,我们把文件名重命名为普通版对拍程序.bat。(网上流传的也大多就这个版本了)

优化版本:
我这里用stringstream把字符串转换成整数,你们也可以用其他办法。

#include<bits/stdc++.h>
using namespace std;
#define random(a,b) ((a)+rand()%((b)-(a)+1))stringstream ss;int main( int argc, char *argv[] )
{ int seed=time(NULL);if(argc > 1)//如果有参数{ss.clear();ss<<argv[1];ss>>seed;//把参数转换成整数赋值给seed}srand(seed);//以上为随机数初始化,请勿修改//random(a,b)生成[a,b]的随机整数//以下写你自己的数据生成代码 printf("1\n");int n=10;int m=random(1,20);printf("%d %d\n",n,m);for(int i=0 ; i<n ; ++i){printf(" %d ",random(0,m));}printf("\n");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P7444-「EZEC-7」猜排列【dp】

正题 题目链接:https://www.luogu.com.cn/problem/P7444 题目大意 一个长度为nnn的排列&#xff0c;已知每个cic_ici​表示那个排列中mexmexmex为iii的区间个数。求满足条件的排列个数 1≤n≤5105,ci≥0,∑i1ncin(n1)2−11\leq n\leq 5\times 10^5,c_i\geq 0,\sum_{i1}^nc_i\…

dubbo线程池为什么耗尽

文章概述 大家可能都遇到过DUBBO线程池打满这个问题&#xff0c;报错如下&#xff0c;本文我们就一起分析DUBBO线程池打满这个问题。 cause: org.apache.dubbo.remoting.RemotingException: Server side(10.0.0.100,20881) thread pool is exhausted, detail msg:Thread pool …

手把手教你写DI_0_DI是什么?

DI是什么&#xff1f;Dependency Injection 常常简称为&#xff1a;DI。它是实现控制反转&#xff08;Inversion of Control – IoC&#xff09;的一个模式。fowler 大大大神 “几十年”前的经典文章 https://www.martinfowler.com/articles/injection.html 说的很清楚。“几十…

C++顺序创建txt文件

今天下午在对拍数据的时候感觉好麻烦。。 一次次手调文件名称&#xff0c;突然想起可以直接写段程序集中操作 顺序输出 #include <iostream> #include <fstream> #include<string> using namespace std;int main () {ofstream File;for(int i0;i<3;i){str…

【模板】字符串哈希

ACM模板 目录构建应用构建 字符串哈希就是将字符串映射成一个数&#xff0c;哈希冲突是不可避免的&#xff0c;我们需要选用合适的base尽可能使得哈希冲突可能性降低 unsigned long long溢出后相当于取模&#xff0c;相当于模264−12^{64}-1264−1 get(l,r)函数返回字符串下标…

P5137-polynomial【倍增】

正题 题目链接:https://www.luogu.com.cn/problem/P5137 题目大意 TTT组数据给出n,a,b,pn,a,b,pn,a,b,p求 (∑01naibn−i)%p\left(\sum_{01}^na^ib^{n-i}\right)\%p(01∑n​aibn−i)%p 1≤T≤105,1≤n,a,b,p≤10181\leq T\leq 10^5,1\leq n,a,b,p\leq 10^{18}1≤T≤105,1≤n,a…

使用Visual Studio Code开发.NET Core看这篇就够了

在本文中&#xff0c;我将带着大家一步一步的通过图文的形式来演示如何在Visual Studio Code中进行.NET Core程序的开发&#xff0c;测试以及调试。尽管Visual Studio Code的部分功能还达不到Visual Studio的水平&#xff0c;但它实际上已经足够强大来满足我们的日常开发。而且…

【模板】最大权闭合图

ACM模板 目录概念建图证明模板题概念 闭合图中所有的点的出边必须指向内部的点 建图 原图的边在网络流中的边容量是INF&#xff0c;如果点权是正&#xff0c;那么源点向其连边&#xff0c;容量是点权&#xff1b;否则它向汇点连边&#xff0c;容量是点权绝对值 证明 考虑最…

P4707-重返现世【dp,数学期望,扩展min-max容斥】

正题 题目链接:https://www.luogu.com.cn/problem/P4707 题目大意 nnn个物品&#xff0c;每次生成一种物品&#xff0c;第iii个被生成的概率是pim\frac{p_i}{m}mpi​​&#xff0c;求生成至少kkk种物品的期望次数。 1≤n≤1000,max{n−10,1}≤k≤n,1≤m≤100001\leq n\leq 100…

手把手教你写DI_3_小白徒手支持 Singleton 和 Scoped 生命周期

在上一节&#xff1a;手把手教你写DI_2_小白徒手撸构造函数注入浑身绷带的小白同学&#xff1a;我们继续开展我们的工作&#xff0c;大家都知道 Singleton是什么&#xff0c;就是全局只有一个呗&#xff0c;我们就先从它开始&#xff0c;这个多简单&#xff0c;我们找个字典放这…

监视任务

来源&#xff1a;牛客网 &#xff1a; 时间限制&#xff1a;C/C 2秒&#xff0c;其他语言4秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld 题目描述 &#x1d445;&#x1d452;&#x1d458;&#x1d456;在课余会接受一些民间的鹰眼…

【模板】最大密度子图

ACM模板 目录概念做法例题概念 选择一个子图G′(V′,E′)G(V,E)G′(V′,E′)&#xff0c;其中对于任意一条边的两个端点必须在所选的点集中&#xff0c;最大化∣E′∣∣V′∣\frac{|E|}{|V|}∣V′∣∣E′∣​ 做法 利用01分数规划二分即最大化 ∣E′∣−g∣V′∣|E|-g|V|∣E…

牛客练习赛79E-小G的数学难题【dp,单调队列】

正题 题目链接:https://ac.nowcoder.com/acm/contest/11169/E 题目大意 给出nnn个三元组(ai,bi,ci)(a_i,b_i,c_i)(ai​,bi​,ci​)。 要求选出一个集合SSS&#xff0c;要求 (∑i∈Sai)≤P,(∑i∈Sbi)≥P\left(\sum_{i\in S}a_i\right)\leq P,\left(\sum_{i\in S}b_i\right)\…

手把手教你写DI_2_小白徒手撸构造函数注入

在上一节&#xff1a;手把手教你写DI_1_DI框架有什么&#xff1f;我们已经知道我们要撸哪些东西了那么我们开始动工吧&#xff0c;这里呢&#xff0c;我们找小白同学来表演下小白同学 &#xff1a;我们先定义一下我们的广告招聘纸有什么&#xff1a;好&#xff0c;我们实现两种…

E. Pattern Matching(题意理解+拓扑排序)

E. Pattern Matching 首先p[mtj]p[mt_j]p[mtj​]必须能够匹配所给字符sjs_jsj​&#xff0c;然后把所有能够匹配的sjs_jsj​的其他模板串也找出来&#xff0c;这些必须放在p[mtj]p[mt_j]p[mtj​]的后面&#xff0c;典型拓扑排序&#xff0c;连边然后排序即可 #define IO ios:…

Sum

链接&#xff1a;https://ac.nowcoder.com/acm/problem/14269 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld 题目描述 考虑维护一个这样的问题&#xff1a…

NOI.AC#2266-Bacteria【根号分治,倍增】

正题 题目链接:http://noi.ac/problem/2266 题目大意 给出nnn个点的一棵树&#xff0c;有一些边上有中转站&#xff08;边长度为222&#xff0c;中间有一个中转站&#xff09;&#xff0c;否则就是边长为111。 mmm次询问一个东西从xxx出发走到yyy&#xff0c;每隔kkk步中转站…

服务器win2008 R2 x64 部署ASP.net core到IIS 并解决 HTTP Error 502.5 的问题

1、发布网站 &#xff1b;2、安装 vc_redist.x64 (Visual C Redistributable for Visual Studio 2015) 新装的系统没装的补丁&#xff0c;装过略过&#xff1b;3、安装WindowsHosting &#xff1a;如&#xff1a; dotnet-hosting-2.1.3-win &#xff1b;4、安装.Net Core SDK&…

codeforces1271 D. Portals(dp or 带悔贪心)

D. Portals 由于每个点可以选择前面的某些点存在重复选择的情况&#xff0c;考虑除去重复选择的可能。 贪心&#xff1a;对于每一个城堡&#xff0c;我们都尽可能在最晚的时间控制&#xff0c;也就是在最后一个能控制它的点考虑是否控制。 于是考虑设计dp 状态表示&#xf…

P3337-[ZJOI2013]防守战线【单纯形】

正题 题目链接:https://www.luogu.com.cn/problem/P3337 题目大意 nnn个地方可以建立塔也可以不建立塔&#xff0c;第iii个位置建立需要消耗CiC_iCi​元 mmm个限制要求在某个区间内的塔的数量超过DiD_iDi​ 1≤n≤1000,1≤m≤100001\leq n\leq 1000,1\leq m\leq 100001≤n≤10…