出题与题单管理

这一页给教练和出题人。出题比做题难,别把这两件事的难度搞混了。

一道题为什么算"能出"

在动手之前先问自己三个问题:

  1. 它的知识点边界清楚吗? 你能不能一句话说清"这题考什么"?说不清就是拼凑。
  2. 你有正解吗? 不是"应该能过",是你亲手写过并通过。
  3. 你能卡住错解吗? 如果任何暴力都能过,这题没有区分度。

三个都答得上来,再开始写。

题面要求

字段 要求
标题 简短明确。别用「一道题」「水题」这种
题面 Markdown + LaTeX,讲清楚背景和目标
输入格式 精确到空格和换行
输出格式 精确到结尾有没有换行
数据范围 必须写,这是硬要求
样例 至少一组,最好带一组边界
时限 / 内存 正解复杂度的 2–3 倍

Danger

数据范围不写,等于题目不可做。

选手靠它判断复杂度、选算法、决定开不开 long long、决定数组开多大。你不写,他不是在做题,是在猜你的心思。这是新手出题人最常见、也最不可原谅的错误。

输出格式的坑

「输出一行,包含一个整数」和「输出一个整数」是两道不同的题:前者选手会加换行,后者会有人不加。如果你两者都接受,就在题面里明确写「行末有无空格均可」;如果你不接受,也明确写。

模糊的地方最后都会变成申诉。

造数据

三种数据,各有用处:

1. 随机数据

验证正确性。注意随机生成器本身容易写错:

  • rand() 在 Windows 上范围只有 32767,直接用它当 n 会永远测不到大数据。
  • 随机区间要覆盖 [min, max] 两端,不要 rand() % n + 1 然后永远取不到 0。

2. 特殊构造

这一层决定题目有没有区分度。 常见要卡的:

  • int 溢出(答案超 2.1×10⁹)
  • 全相同元素 / 严格递增 / 严格递减
  • n = 1、n = 2 这种极小规模
  • 链状图、菊花图、完全图
  • 递归深度刚好卡到栈上限

3. 大数据

验证时限是否合理。别让正解也超时——这比数据太弱更糟糕,因为选手会以为自己写错了。

文件组织

Hydro 的约定:

1.in    1.out
2.in    2.out
3.in    3.out

Warning

改完数据要重新用正解跑一遍全部测试点。改了 .in 忘了同步 .out,全世界的提交都会 WA,而且没人知道为什么。

建题单

  1. 题库里准备好题。
  2. 「训练」→「创建训练」,填标题、简介、起止时间。
  3. 加章节,按顺序挂题。
  4. 设公开范围。

题单简介该写什么

不是复述标题。写三件事:

  • 这个题单练什么(知识点清单)
  • 前置是什么(没学过 X 的先别来)
  • 大概要多久(让人能安排时间)

写得清楚,来的人做得下去;写得含糊,来的人做两道就跑了。

难度怎么标

按前置知识标,不按通过率标:

级别 判断标准
入门 会循环和数组就能做
普及 需要贪心、简单 DP、基础数据结构
提高 需要图论、树、较难 DP、数学推导
省选 需要建模,多个知识点组合

通过率受数据强弱影响很大,同一个题改个时限就能从 80% 掉到 20%。别用它当难度指标。

维护

  • 题目改动后要重新验证已有提交是否还成立,否则排行榜失真。
  • 长期不用的题单归档,不要删。删了历史提交记录一起消失,选手的进度就没了。
  • 同一道题被反复申诉同一个点,说明题面有问题,去改题面,不要改数据糊过去。
© HiJudge · 内容采用 CC BY-NC-SA 4.0 许可协议            此页面修订于: 2026-11-01 03:44:11

results matching ""

    No results matching ""