CYaRon Yet Another Random Olympic-iNformatics test data generator
By Luogu 项目地址: https://github.com/luogu-dev/cyaron
你是否遇到以下情况:
那么,你可以借助 CYaRon 和 Python ,来快速生成一组数据。目前支持的特性有:
快速上手指南
稳定版本可以从pip获取: pip install cyaron
,在此之前,需要准备好Python。
最新开发版可以克隆GitHub源代码: git clone https://github.com/luogu-dev/cyaron.git
请您查看CYaRon文档和CYaRon基本入门来学习如何使用CYaRon。
若您发现文档中有缺漏,请提出Issue并暂时根据examples
和源代码进行YY。
CYaRon基于Python。若您对Python不熟悉,可看快速入门教程。
之后计划实现云Generator,即只需提供写好的脚本以及std,上传到服务器,即可下载一个测试数据的压缩包,真正实现5分钟生成一个测试数据!
希望各位大佬一起来协助改进这个项目。希望这个项目可以帮助大家节省时间!
使用范例
#!/usr/bin/env python
from cyaron import * # 引入CYaRon的库
_n = ati([0, 7, 50, 1E4]) # ati函数将数组中的每一个元素转换为整形,方便您可以使用1E4一类的数来表示数据大小
_m = ati([0, 11, 100, 1E4])
# 这是一个图论题的数据生成器,该题目在洛谷的题号为P1339
for i in range(1, 4): # 即在[1, 4)范围内循环,也就是从1到3
test_data = IO(file_prefix="heat", data_id=i) # 生成 heat[1|2|3].in/out 三组测试数据
n = _n[i] # 点数
m = _m[i] # 边数
s = randint(1, n) # 源点,随机选取一个
t = randint(1, n) # 汇点,随机选取一个
test_data.input_writeln(n, m, s, t) # 写入到输入文件里,自动以空格分割并换行
graph = Graph.graph(n, m, weight_limit=5) # 生成一个n点,m边的随机图,边权限制为5
test_data.input_writeln(graph) # 自动写入到输入文件里,默认以一行一组u v w的形式输出
test_data.output_gen("D:\\std_binary.exe") # 标程编译后的可执行文件,不需要freopen等,CYaRon自动给该程序输入并获得输出作为.out
贡献
所有的贡献者请查看光荣榜页面,衷心感谢他们对CYaRon项目的付出。
欢迎您对 CYaRon 做出贡献。若您有希望加入的功能,可以给我们提出 Issue ,或者自己动手实现,然后发起 Pull Request。
有关于如何做出贡献的更详细内容,请查看如何做出贡献。