@zhshh
2018-07-22T04:31:19.000000Z
字数 1679
阅读 1878
@zhshh OI 其他
WARN!
#include <bits/stdc++.h>在OI等里面不一定能应用,下面只是为了减小长度而已
bits库实际上就是#include <XXX>了一堆而已
目录
对拍.bat
:loopmakedata.exeK.exeKture.exefc a.out b.outif %errorlevel%==0 goto looppause
解释
:loop
创建叫做loop的标签
makedata.exeK.exeKture.exe
运行makedata.exe,K.exe,Kture.exe
其中makedata输出到x.in,然后K.exe从x.in读入,输出到a.out,Ktrue.exe从x.in读入,输出到b.out
fc a.out b.outif %errorlevel%==0 goto looppause
比较a.out b.out
fc是windows下面一个程序,简单来说如果两个文件相同返回0,不同返回1
%errorlevel%是一个变量,意思是上一行代码的返回值
如果 返回==0 跳转到loop(第一行标签)
如果 返回不等于0 跳过这句话,执行pause(暂停),然后程序结束
:loopecho %random%|data.exebaoli.exemine.exefc mine.out baoli.outif %errorlevel%==0 goto looppause
输出测试数据到in.in
#include <bits/stdc++.h>using namespace std;int main(){int rands;freopen("in.in","w",stdout);cin>>rands;srand(rands);//随机数种子,一会再说cout<<rand()<<" "<<rand();return 0;}
由于windowsCPP的特性,srand(time(0))一秒只有一个种子,而自己的程序不会太慢,所以直接输入一个种子即可
在echo %random%|data.exe里面,是%random%是一个随机数(由duipai.bat解析器cmd.exe随机,每次都是随机的)
|是管道运算,把前面命令应该显示的东西作为标准输入给后面的,echo XXX是显示XXX
这句话意思是把%random%(叫做random的变量,在没有手动声明其值时,每次调用都是随机数)输入给data.exe
一个已知正解的程序,比如包括暴力求解程序,别人、网上的正解等
#include <bits/stdc++.h>using namespace std;int main(){int q,w;freopen("in.in","r",stdin);freopen("baoli.out","w",stdout);cin>>q>>w;int ans=0;if(q>0) {for(int i=1;i<=q;i++){ans++;}}else{for(int i=-1;i>=q;i--){ans--;}}if(w>0) {for(int i=1;i<=w;i++){ans++;}}else{for(int i=-1;i>=w;i--){ans--;}}cout<<ans;return 0;}
自己的程序或者测试的程序
为了显示功能,这里是随机出错。。
#include <bits/stdc++.h>using namespace std;int main(){int q,w;freopen("in.in","r",stdin);freopen("mine.out","w",stdout);cin>>q>>w;srand(time(0));int r=rand()%20;if(r>=10){cout<<q+w+1;}else{cout<<q+w;}return 0;}
最后双击duipai.bat即可看到效果