对拍

对拍是一个OIer的基本功,特别是对于OI赛制的比赛,想要多水分,对拍是一个必须学会的技巧。(一边A的神犇和手模逆天数据的大佬请出门右转)

对拍程序一般由随机数发生器,对拍程序组成。

随机数发生器

(就是用来造数据的)

需求库:

include<ctime>(windows)||include<time.h>(Linux)

include<cstdlib>

常用函数

srand(time(NULL)):可以为rand函数提供不同的种子值,进而产生不同的随机数序列。

rand():产生随机数。
解释
 1 #include<ctime>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 int a,b;
 5 int main(){
 6     srand(time(0));
 7     a=rand(),b=rand();
 8     printf("%d %d\n",a,b);
 9     return 0;
10 }

!可以用modx控制随机数范围。

对拍程序

控制暴力和伪正解跑起来,比对错误。

需求库:

include<windows.h>

常用函数:

system("???>???.in") 把随机数发生器的生成数据导入.in中;

system("???<???.in>??.out"> 把.in中的数据输入进程序并将输出结果导入.out中;

system("fc???.out???.out"> 比较两个.out文件中的数据,并返还一个bool值;
解释
 1 #include<cstdio>
 2 #include<windows.h>
 3 int main(){
 4     int t=100;
 5     while(t--){
 6         system("maker>000.in");
 7         system("zj<000.in>001.out");
 8         system("bl<000.in>002.out");
 9         if(system("fc 001.out 002.out")){puts("WOW!");break;}
10     }
11 system("pause"); 12 return 0; 13 }

 

参考:

http://hzwer.com/860.html

百度百科

posted @ 2017-05-06 21:53  J_william  阅读(408)  评论(0编辑  收藏  举报