当前位置: 首页 > news >正文

测试数据生成工具

生成信息学竞赛题目数据的库一般使用CYaRon或者Testlib库。

  • CYaRon 是由洛谷开发的基于 Python 的开源软件,用于便捷地生成 OI 题目的测试数据。
  • Testlib 是一个专为编程竞赛设计的开源C++库,由Mike Mirzayanov开发。它广泛应用于俄罗斯多项编程竞赛中,包括俄罗斯国家信息学奥林匹克竞赛(ROI)以及国际大学生程序设计竞赛(ICPC)的不同阶段。该库支持标准C++11及以上版本,兼容主流编译器如GCC和Clang。Testlib提供了测试生成器(Generator)、验证器(Validator)、交互器(Interactor)和特殊裁判(Checker)等核心组件,极大地简化了竞赛题目开发者的工作流程。

本文(不介绍CYaRonTestlib库)旨在使用大家熟悉的C++语言介绍信息学题目数据构造工作流程。

一、准备工作

  • 先准备标程std.cpp,把标程编译成std.exe备用。
  • 修改data.app代码(生成数据)。
  • 使用gen.cpp生成数据的输出文件。
  • data.cppgen.cppdata文件夹放同一个目录中。

二、生成输入数据(data.cpp)

//以a+b为例子,生成20个数据文件,文件名data01.in~data20.in
#include <bits/stdc++.h>
#include <sys/time.h>
using namespace std;
#define ran  rand()%//利用程序生成测试数据
void make_data() {srand((unsigned int)time(NULL)); //随机数种子for (int iii = 1; iii <= 20; iii++) {char Fin[50];sprintf(Fin, "data/data%02d.in", iii);freopen(Fin, "w", stdout);int a, b;a = ran 90000 + 1;b = ran 90000 + 1;cout << a << ' ' << b;fclose(stdout);//关闭文件重定向}
}int main() {make_data();return 0;
}

C++

三、使用标程生成测数数据的输出数据(gen.cpp)

//使用标程生成输出数据,文件名data01.out~data20.outt
#include <bits/stdc++.h>
using namespace std;
int main() {for (int i = 1;  i <= 20; i++) {char Fin[50], Fout[50];sprintf(Fin, "data/data%02d.in", i);sprintf(Fout, "data/data%02d.out", i);freopen(Fin, "r", stdin);freopen(Fout, "w", stdout);system("std.exe");fclose(stdin);fclose(stdout);}
}

C++

四、polygon

Polygon 是一个支持多人协作的出题平台,功能非常完善。官网描述为「Polygon 的使命是为创建编程竞赛题目提供平台。」在 Codeforces (CF) 出题必须使用 Polygon。在其它地方出题,尤其是多人合作出题时,使用 Polygon 也是不错的选择。

polygon

http://www.dtcms.com/a/533331.html

相关文章:

  • 云台和雷达标定方法
  • 福州全网网站建设七牛云最新消息
  • asp.net做的网站要放到网上空间去要放哪些文件上去个体工商户可以网站建设吗
  • Linux 信号的保存机制
  • Cortex-M3-STM32F1 开发:(十三)HAL 库开发 ➤ printf 函数的使用与重定向
  • 客户制作网站时的问题个人备案网站放什么资料
  • 【JDBC】----- MySql数据库驱动jar包下载流程
  • C++中的LCA(最近公共祖先)详解
  • 防止过拟合相关技术
  • 重庆网站建设哪里比较好呢遵义市做网站的电话
  • 【补题】The 3rd Universal Cup. Stage 15: Chengdu B. Athlete Welcome Ceremony
  • SZU大学物理1实验报告|薄透镜
  • 深入理解sigaction函数:Linux信号处理机制与使用指南
  • 网站设计公司哪家专业在线种子资源网
  • 便宜做网站如何免费做网站赚钱
  • 4 Initialization and Training(初始化和训练)
  • 简易银行系统->多线程高并发
  • 【系统分析师】高分论文:论基于构件的软件开发(气象灾害影响评估系统)
  • 【java面向对象进阶】------多态综合案例
  • 做一个内容网站多少钱wordpress调用导航
  • 惠州网站开发公司电话个人兴趣图片集网站建设
  • C++ list 类的使用
  • 怎么利用QQ空间给网站做排名没有专项备案的网站
  • 显示官网字样的网站怎么做wordpress 多站点主题
  • 如何建设一个新的网站快手推广软件免费版
  • 国内十大搜索引擎网站安徽网络关键词优化
  • 【Linux】定制Linux系统
  • 个人网站备案取消网站建设管理分工
  • 企业网站建设的趋势手机网站建设的整体流程图
  • 松原做招聘的网站有哪些系统优化的意义