通用出OI样例模板
2024-10-19 18:46:11
发布于:广东
前言
大家出题时是不是常常因为不知道怎么快速编写样例而烦恼呢?💢
本文将给出一种出样例的示例代码文件
该方法只需复制下方的代码并保存到"makedata.h"的文件中,即可快速制造测试点。
这是是蒟蒻第一次写技术类文章,如有差错,欢迎指出!❤
✔makedata.h
#include<bits/stdc++.h>
using namespace std;
ofstream infile, outfile;
int times = 10;
void file(int tp) {
char inname[10],outname[11];
infile.close();
outfile.close();
sprintf(inname, "data%02d.in", tp);
sprintf(outname, "data%02d.out", tp);
infile.open(inname);
outfile.open(outname);
}
#define num(a,b) ((rand()*RAND_MAX+rand())%(a-b+1)+a)
string str(int aa, int bb) {
int xz = aa;
string p;
for (int ij = 0; ij < xz; ij ++) {
char c = num(int('a'), int('z'));
p += c;
}
return p;
}
int make(int tp);
int main() {
srand(time(0));
for(int tp = 1;tp <= times; tp ++) {
file(tp);
make(tp);
}
return 0;
}
请点击右键另存为,并刚改后缀名为.rar,即可看到源文件
感谢话丝血大佬提供的文章:使用图片传输文件的教程(有图床教程)
注意:该文件需和.cpp文件放在同一个目录下
代码分析🎇
1. times 变量
int times = 10;
- 定义了 变量,并设置了初始值为10。
其含义为:将生成 组测试样例。
2. file 函数
void file(int tp)
- 控制文件的输入输出
先关闭上次打开的文件,然后根据tp
的值生成新的输入输出文件。
3. num 函数
#define num(a,b) ((rand()*RAND_MAX+rand())%(a-b+1)+a)
- 生成在 之间的随机数
注意:生成数的范围并不在 之间,有2的误差
操作方法✨
- times
times = ......;
- 设定测试样例的组数
- infile
infile << ......
- 将输入存入到文件名.in文件中
- outfile
outfile << ......
- 将输出存入到文件名.out文件中
示例🎨
以下是用 生成 A1.A+B problem 的测试样例的示例代码
#include "makadata.h"
int make(int tp) {
times = 50;
int a = num(1, 100000000), b = num(1, 100000000);
infile << a << " " << b;
outfile << a + b;
return 0;
}
生成文件后要将所有关于测试样例的文件压缩到 .zip 中
如果觉得蒟蒻写得还不错,就点个小赞吧😉
此贴原著:🐱🚀,ID:4348708
禁止抄袭本帖,违者必究✌
全部评论 7
2024-10-20 来自 四川
22024-10-19 来自 广东
12024-10-19 来自 广东
1?!
2024-10-19 来自 广东
1
帮顶
2024-10-19 来自 广东
1顶
2024-10-19 来自 广东
12024-10-19 来自 广东
1秒回?
2024-10-19 来自 广东
1正好刷到
2024-10-19 来自 广东
1666,我才刚发不久
2024-10-19 来自 广东
1
顶
2024-10-19 来自 广东
1
有帮助,赞一个