linux-tools/ojgen
linux-tools★ 0JavaScript最后同步: 2026-08-15
Multi-platform OJ test data generator: generate problem test data for Luogu / HDOJ / POJ / ZOJ / Nowcoder / LeetCode using CYaRon
README 摘要
OJ 练习题多平台数据生成器(ojgen-project) 本人第一次使用deepseek harness把之前我做的一半的东西给做好了,可能还是会有不完善的地方,需要大家尽可能反馈问题 借助 Python + CYaRon 为多个 OJ 平台生成算法练习题的测试数据。 - 开源许可:MIT - 发布脚本: publish-to-github.ps1 (在本机执行,创建 GitHub 仓库并推送) 支持平台与输出格式 平台 生成器参数 交付格式 洛谷 luogu.com.cn luogu 每测试点独立 -1.in/.out … -n.in/.out (SPJ 加 checker.cpp ) HDOJ / POJ / ZOJ hdu / poj / zoj .in / .out (全部用例 EOF 拼接)+ cases/ 分用例 牛客(ACM 模式) nowcoder .in / .out (EOF 拼接)+ cases/ 牛客(核心代码模式) nowcoder core testcases.txt + answers.txt (参数逐行 JSON 序列化) LeetCode leetcode testcases.txt + answers.txt (参数逐行 JSON 序列化) 暂时不支持交互题与通信题,不过应该会变得更快吧 目录结构 快速开始 1. 环境 Windows / Linux / macOS 均可。执行脚本时注意命令名差异:Linux/macOS 常用 python3 ,Windows 常用 python / py (标程命令同理,如 python3 std.py )。 2. 编写生成器 把 scripts/ojgen.py 复制到工作目录(或直接在该目录运行),新建 gen xxx.py : 输出目录内附 manifest.json (平台/题号/种子/时间)与 README.txt (格式说明)。 3. 核心 API 方法 作用 Gen(platform, problem id, n, std, out dir, seed) 初始化生成任务(自动 seed 随机) gen.cases() 迭代 1..n,进入/离开用例时自动落盘 gen.input writeln( args) / gen.input write( args) 写输入行(等价 cyaron IO) gen.input json(obj) 序列化平台:按 LeetCode 规则写一个 JSON 值 gen.input raw(text) 原样写入多行(如 graph.to str() ) gen.output writeln( args) / gen.output raw(text) 手动写答案 gen.output json(obj) 手动写答案(序列化平台) gen.aut…
在 GitHub 查看完整 README →