OJ测试数据生成

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

给 OJ/算法题自动生成 10 组 .in/.out 测试数据:自动分析题目、设计测试点、跑标程出答案、自动校验,默认输出文件夹,按需打包 ZIP。

一句话选型结论

按资料字段整理

OJ测试数据生成是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_b89a4d0a/oj-data-generator
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_b89a4d0a仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791643117
正文体量8.2 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
OJ测试数据生成当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

8.2 KB
模型实际读到的说明书原文,来自技能仓库

OJ 测试数据生成器

<!-- SLOW_UPDATE_START -->

核心规则(不可变)

  1. cyaron 唯一工具 — 必须用 cyaron v0.7.0+(当前最新版),严禁用 random 替代 cyaron 生成数据(仅允许 random.seed() 固定种子)
  2. 10 组数据 — 固定 1.in/1.out ~ 10.in/10.out
  3. 新版 API — input_writeln、weight_limit、Graph.flower()、Graph.tree()、Graph.complete()
  4. 标程必须 AC — 正确性优先于性能
  5. 确认后即执行 — 一次性展示方案,用户确认后全自动生成,不再逐步骤打断
  6. 默认不打包 — 默认只输出文件夹(1.in~10.in / 1.out~10.out);仅当用户明确要求打包时才打 ZIP,且打包前确认方式:平铺 20 个文件,或按题目文件夹

已验证有效的模式

  • 测试点分布:1(最小) → 2-3(边界) → 4-6(中等随机) → 7-8(大规模) → 9-10(极端)
  • 路径处理:绝对路径 + 复制脚本到输出目录 + CYARON_OUTPUT_DIR 环境变量
  • 内容分离:SKILL.md 仅速查,完整 API 见 references/
  • 交付方式:默认文件夹,用户要求打包时确认 ZIP 布局(flat / folder)

已知反模式

  • ❌ 旧版 API(write_writeln、Graph.star()、weight=)
  • ❌ 相对路径依赖
  • ❌ 多次打断用户确认
    <!-- SLOW_UPDATE_END -->

工作流程(三阶段)

阶段 1:自动分析

从题目描述中自动提取,无需用户干预:

提取项 说明
题目类型 排序/图论/DP/数学/字符串/数据结构/搜索/几何
输入格式 变量名、顺序、单行/多行、T 组用例
输出格式 单个值/多行、无解约定(-1/Impossible)
数据范围 若未指定则按题型推断合理默认值
边界约束 特殊条件(质数、互质、连通性等)

> 题型模式参考:references/common_patterns.md(12+ 题型)
> cyaron API 参考:references/cyaron_guide.md

阶段 2:一次性确认 🛑

自动分析完成后,向用户展示一份完整方案,包含:

📋 题目理解
  - 类型:xxx
  - 输入:xxx
  - 输出:xxx
  - 范围:xxx

📊 10组测试点分布
  #1  最小规模    n=1                    (基础验证)
  #2  边界        xxx                    (xxx)
  #3  边界        xxx                    (xxx)
  #4-6 中等随机   n=xxx~xxx             (典型情况)
  #7-8 大规模     n≈上限                 (性能压力)
  #9-10 极端边界  最大+特殊构造           (压力+corner)

⚙️ 标程方案
  - 语言:Python/C++
  - 算法:xxx,复杂度 O(xxx)

📦 输出配置
  - 题目名:xxx
  - 输出目录:./output
  - 交付格式:文件夹(默认,不打包)
  - 打包 ZIP:仅当用户要求时 → 问清布局:平铺20个文件 / 按题目文件夹

用户确认或调整后,进入阶段 3。这是唯一一次确认,之后全自动执行。

阶段 3:一键生成

用户确认后,自动完成以下全部操作:

  1. 生成标程 — 写入 std.py 或 std.cpp
  2. 生成 cyaron 脚本 — 写入 gen_data.py,覆盖 10 组测试点(文件命名必须为 1.in~10.in)
  3. 执行生成 — 调用 scripts/generate_data.py:
    bash python3 scripts/generate_data.py --problem &lt;name&gt; [--seed 42] [--zip] [--zip-mode flat|folder]
    - --seed 通过 CYARON_SEED 传给 gen_data.py,同一种子输出完全可复现
    - --count 为高级选项,默认 10;自定义时需同步修改 gen_data.py 的 DATA_COUNT
  4. 自动校验(见下方校验清单)
  5. 交付 — 默认不打包,直接交付输出文件夹;仅当用户明确要求打包时执行 --zip,并按确认的布局传 --zip-mode flat(平铺20个文件)或 --zip-mode folder(按 &lt;name&gt;/ 文件夹)

自动校验清单

脚本自动检查(generate_data.py,不通过则中止并报错):

  • [x] 1.in ~ 10.in / 1.out ~ 10.out 全部存在且文件数与 --count 一致
  • [x] 所有文件非空
  • [x] 所有文件为合法 UTF-8 编码
  • [x] ZIP 完整性校验(testzip,仅 --zip 打包时)
  • [x] 标程异常或超时时中止打包,不交付残缺数据

Agent 人工检查(无法机械判定的部分,交付前确认):

  • [ ] .in 文件格式符合题目描述
  • [ ] 最小数据(#1)和最大数据(#9-10)均有覆盖
  • [ ] 输出格式正确(无解约定、换行、精度等)

> 建议改动脚本后运行 python3 scripts/smoke_test.py 做端到端回归。


测试点设计原则

分布策略

编号 规模 目的
1 最小合法值 基础验证
2-3 小规模 边界/特殊构造
4-6 中规模随机 典型情况
7-8 接近上限 性能压力
9-10 最大值+特殊构造 极端边界

按题型的边界覆盖

通用:最小值、最大值、全相同元素、已排序/逆序

数值:负数混合、溢出边界、模质数、GCD=1

图论/树:Graph.chain() 链、Graph.flower() 星、Graph.complete() 完全图、不连通图

字符串:空串、单字符、全相同、回文、最大长度

数组:递增/递减、山峰/山谷形、交替变化

DP:n=1、n=2、全相同、单调序列


异常处理

异常 处理
cyaron 未安装 提示 pip install cyaron&gt;=0.7.0(最新版),不可回退到 random
数据范围缺失 按题型推断默认值,在确认方案中标注"推断"
C++ 编译失败 / 无 g++ 脚本自动回退到同目录 std.py;无 Python 标程则中止并提示
标程超时(>30s) 或运行异常 脚本中止流程并列出异常测试点(不产出数据/ZIP),修复标程或缩数据后重新生成
磁盘不足 预估大小,超 500MB 时提示确认

文件结构

oj-data-generator/
├── SKILL.md                       # 本文件
├── scripts/
│   ├── generate_data.py           # 主生成脚本(一键执行+打包)
│   ├── gen_data_template.py       # cyaron 数据生成模板
│   ├── std_template.py            # Python 标程模板
│   └── std_template.cpp           # C++ 标程模板
├── references/
│   ├── cyaron_guide.md            # cyaron 完整 API (v0.7.0)
│   └── common_patterns.md         # 12+ 题型 cyaron 写法
├── test-prompts.json              # 回归测试用例
└── optimization-report.md         # 优化历史

注意事项

  1. cyaron 唯一工具:严禁 random 模块替代
  2. 新版 API 强制:input_writeln/input_write、weight_limit、Graph.flower()/Graph.tree()
  3. 标程 AC 优先:性能可略低于最优解
  4. UTF-8 + Unix 换行:所有文件统一编码
  5. seed 可复现:默认随机,可通过 --seed 固定
  6. 避免中文路径
  7. 打包需用户确认:默认只交付文件夹;用户要求打包时,先在方案中确认布局(平铺 / 按文件夹),不要默认打 ZIP

示例

排序题

用户:给排序题造数据。输入 n m,第二行 n 个整数,输出前 m 大的数降序。n≤10^5。

流程:
1. 自动分析 → 展示方案(类型:排序,测试点: n=1/m=n/m=1/升序/逆序/全相等/10^5,标程: sort+切片 O(n log n))
2. 用户确认 → 一键生成 10 组数据 → 输出文件夹(用户要求打包再按确认布局出 zip)

最短路

用户:Dijkstra 模板题,n 点 m 边无向图,求 1 到 n 最短路,无解 -1。n≤10^5, m≤2×10^5。

流程:
1. 自动分析 → 展示方案(类型:图论-最短路,测试点: chain/flower/complete/tree/不连通,标程: Dijkstra 堆优化 O(m log n))
2. 用户确认 → 一键生成 → 输出文件夹(如需打包先确认布局)

常见问题

5 问
答案由本站依据条目字段整理
OJ测试数据生成怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_b89a4d0a/oj-data-generator。安装方式为未标注。装完刷新技能列表或重开客户端。

OJ测试数据生成支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

OJ测试数据生成权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

OJ测试数据生成收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

OJ测试数据生成用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。