暴力出奇迹,对拍保平安。
对拍应该几乎所有人都听说过,但对于萌新来说却又那么遥不可及。其实和那些大佬说的一样,对拍其实很简单。
我们在比赛的时候都应该养成一个做题的好习惯:每一题都分步写。能写暴力的就不要犹豫,先把暴力写出来,到时候根据数据加个特判就好了。而且暴力程序除了骗分以外,还是对拍中重要的一环。所谓对拍,其实就是把你不确定正确性的程序和暴力(一定正确!一定正确!一定正确!)但肯定得不到满分的程序的输出进行比较。这就是对拍。
对拍主要有四个文件:
1、数据生成
2、暴力程序
3、未知程序
4、bat文件
1、数据生成文件
主要介绍几个生成数据的代码:
srand((int)time(null));
用来保证不输出重复数据。
rand()
生成一个0~32767之间的整数
rand()<<45|rand()<<30|rand()<<15|rand();
生成一个很大的long long数
int temp=rand()%52+1;
char ch;
if(temp<=26)ch='a'+temp-1;
else ch='A'+temp-27;
生成字母
bat文件
开头加上
@echo off
屏蔽调用的
set path=C:\Windows\System32
路径调用指令,不然用不了fc
:while
... .exe文件
... .exe文件
... .exe文件
//分别是数据生成,暴力,待测程序,顺序随意
fc...(输出一) ...(输出二)
if errorlevel == 1 goto end
goto while
:end
bat版子,还是比较简单的