当然我们需要用到产生随机数的函数和文件操作,oj判定只看你的输出答案和标准答案是否一致。
我们来举个栗子:
比如
A + B Problem
描述
Calculate a+b
输入
多组输入
Two integer a,b
输出
Output a+b
输入样例 1
1 2 2 3输出样例 1
3 5我们的输入文件里的数据就和输入样例格式一样
#include <bits/stdc++.h> using namespace std; int main() { srand(time(0));//设置时间种子 freopen("test.in","w",stdout);//设置 cout printf 这些输出流都输出到 test.in里面去 int a,b; int len=100; for(int i=0;i<len;i++)//多组数据 如果不用多组数据把循环去掉就可以了,len表示有几组数据 { a=rand()%100000,b=rand()%100000;//rand()产生随机数取余表示数据的范围为0-100000 printf("%d %d\n",a,b);//输出到test.in中 一定记得换行 } return 0; }注意点和技巧:
1.一定记得设置时间种子和换行
2.如果数据要求不重复,可以用vis数组来标记判断
3.取余限制数据的范围
输出数据就都在test.out中了
出题也是个技术活,有时候需要你考虑题目的时间复杂度和空间复杂度来设置一些精巧的数据来排除某些方法。
