- SWPUACM
出题教程&规范
- 2021-10-14 0:10:58 @
可以使用使用CYaRon
造数据:
博客:https://acmer.blog.csdn.net/article/details/122261480
视频:https://www.bilibili.com/video/BV1p34y1z7Xd
官方出题教程:https://hydro.ac/d/faqs/p
目录
【一】怎么创建题目
【1.1】stp1
【1.2】step2
由于题面是markdown,所以不会的同学请移步学习 -》markdown
创建好后我们刷新就能看到一个文件的地方,这个地方就是我们传数据的地方
【1.3】进来后我们会看到如下情况
【二】关于题目其他配置
【2.1】题目数据
数据的上传也能上传一个输入输出数据的zip压缩包也可以一个一个的上传!
【2.2】图片或者其他文件
如果是有一些附带的题目文件,例如 音频文件 或者其他文件,可以放在题目的文件处:
如果是图片的话是支持直接Control + V
复制粘贴上来的
当然你也可以上传到个人文件的位置,然后再贴一个外链
【2.3】配置文件
和以往不同,我们如果想修改题目的时间限制,空间限制或者是想写 SPJ
或者交互提等则需要再额外追加一个config.yaml文件,这个文件就是对题目的信息配置了,这里我简单提一下
例如:A+B的题目里面的配置文件:
# 题目类型,可以为 default(比对输出,含spj), submit_answer(提交答案), interactive(交互题)
type: default
# 输入输出文件名(例:使用 foo.in 和 foo.out),若使用标准 IO 删除此配置项即可
filename: null
score: 10 # 单个测试点分数
time: 1000ms # 单个测试点时间限制
memory: 256m # 单个测试点内存限制
cases: #将你的数据文件按照如下配置即可
- input: 1.in
output: 1.out
- input: 2.in
output: 2.out
- input: 3.in
output: 3.out
- input: 4.in
output: 4.out
- input: 5.in
output: 5.out
- input: 6.in
output: 6.out
- input: 7.in
output: 7.out
- input: 8.in
output: 8.out
- input: 9.in
output: 9.out
- input: 10.in
output: 10.out
完整的yaml格式
# 题目类型,可以为 default(比对输出,含spj), submit_answer(提交答案), interactive(交互题)
type: default
# 全局时空限制(此处的限制优先级低于测试点的限制)
time: 1s
memory: 128m
# 输入输出文件名(例:使用 foo.in 和 foo.out),若使用标准 IO 删除此配置项即可
filename: foo
# 此部分设置当题目类型为 default 时生效
# 比较器类型,支持的值有 default(直接比对,忽略行末空格和文件末换行), ccr, cena, hustoj, lemon, qduoj, syzoj, testlib
checker_type: default
# 比较器文件(当比较器类型不为 default 时填写)
# 文件路径(位于压缩包中的路径)
# 将通过扩展名识别语言,与编译命令处一致。在默认配置下,C++ 扩展名应为 .cc 而非 .cpp
checker: chk.cc
# 此部分设置当题目类型为interactive时生效
# 交互器路径(位于压缩包中的路径)
interactor: interactor.cc
# Extra files 额外文件
# These files will be copied to the working directory 这些文件将被复制到工作目录。
# 提示:您无需手动上传 testlib.h。
user_extra_files:
- extra_input.txt
judge_extra_files:
- extra_file.txt
# Test Cases 测试数据列表
# If neither CASES or SUBTASKS are set(or config.yaml doesn't exist), judge will try to locate them automaticly.
# 如果 CASES 和 SUBTASKS 都没有设置或 config.yaml 不存在, 系统会自动尝试识别数据点。
# We support these names for auto mode: 自动识别支持以下命名方式:
# 1. [name(optional)][number].(in/out/ans) RegExp: /^([a-zA-Z]*)([0-9]+).in$/
# examples:
# - c1.in / c1.out
# - 1.in / 1.out
# - c1.in / c1.ans
# 2. input[number].txt / output[number].txt RegExp: /^(input)([0-9]+).txt$/
# - example: input1.txt / input2.txt
#
# The CASES option has higher priority than the SUBTASKS option!
# 在有 CASES 设置项时,不会读取 SUBTASKS 设置项!
score: 50 # 单个测试点分数
time: 1s # 时间限制
memory: 256m # 内存限制
cases:
- input: abc.in
output: def.out
- input: ghi.in
output: jkl.out
# 或使用Subtask项:
subtasks:
- score: 30
type: min # 可选 min/max/sum,分别表示取所有测试点最小值、所有测试点最大值、所有测试点之和
time: 1s
memory: 64m
cases:
- input: a.in
output: a.out
- input: b.in
output: b.out
- score: 70
time: 0.5s
memory: 32m
if: [0] # 可选,传入数组,表示仅在subtask0通过时此subtask才计分
cases:
- input: c.in
output: c.out
- input: d.in
output: d.out
# 提交语言限制
# 列举出所有本题允许使用的语言对应的代码(需要和评测机 lang.yaml 内的语言代码相同)
langs:
- c
- cc
- pas
【2.4】更多示例
【三】出题规范
【3.1】基本规范
【3.1.1】LaTeX
不会LateX的同学移步:https://www.cnblogs.com/1024th/p/11623258.html
题目中的所有数字符号、常数、公式、作为变量的字母应使用 LaTeX 公式,若其两边无标点符号则应加上空格。其他普通的英文内容、特定的数字内容或代码形式的英文应使用行内代码串,且同样需要空格,如:dfs
,01 串
,int a
。
特别注意,LaTeX 中不允许出现任何中文或中文标点。
在题目的文字分析中不应出现任何程序语言,如 a[i]
、a==b
、a+=b
、a>=b
等
正确示例:
我们令变量 $a$ 等于 $1$。
我们使用 dfs 算法。我们有一行 01 串。
我们可以使用 `queue<int>q` 来定义一个 `int` 类型的队列。
可得 $a_{i,j}=a_{i,j-1}\times 2$。
我们发现 $a\le b$。
实际效果
我们令变量 等于 。
我们使用 dfs 算法。我们有一行 01 串。
我们可以使用 queue<int>q
来定义一个 int
类型的队列。
可得 。
我们发现 。
【3.2】格式要求
【3.2.1】背景
该部分非必要,但强烈建议您在题目背景较长时将其独立至此部分。
优秀的题目背景应当与题目的具体做法毫无联系。
【3.2.2】题目描述
题目描述要求清晰易懂,能够让他人完整且较为轻易地理解题目的具体要求。
题目描述中应具体解释可能会使人产生误解的语句。
请尽可能不要故意将题目的一些坑点隐藏在题目中,而是要将可能会产生疏漏的点在题目中给出醒目提示。
【3.2.3】输入/输出格式
- 请不要出多组输入的题目!请不要出多组输入的题目!请不要出多组输入的题目!
- 描述多个并列的变量时,应合并为一个公式;输出特定字符串时应使用行内代码块。
- 输入输出格式中应有输入的各种变量的具体数据类型。
- 数据的范围可以单独写一个hint也可以直接写在输入描述的后面。
- 如果输出中含有小数,请尽量使用 Special Judge。
【3.2.4】样例输入/输出
样例应当有一定的强度,能够查出一些简单的错误。读错题意的人应当能够通过样例发现自己读错了题意。
有多种操作的题,每种操作都应在样例中出现。有多种输出的题,每种可能的输出都应在样例中出现。
要求样例输入输出全部使用 input
、output
格式。
举例:
```input1
1 2
3
3 2
5
**效果为**:
```input1
1 2
3
3 2
5
【3.2.5】样例说明
题目描述越复杂、越不易理解就越应当有详细的样例说明,题目难度越简单就越应当有详细的样例说明。一般来说,一道题至少应该有一个样例说明,当然过于简单的题目不需要样例解释
【3.2.6】时空限制
原则上,时空限制应至少为 std 在最坏情况下的两倍。
【3.2.7】标签
题目的标签应当阐述通过本题需要的算法。
【四】其他规范
【4.1】题解
出题人应在开放题目后立即将自己的题解放在该题的题解区,先阐明思路,然后再贴代码,贴代码建议贴图片
可以使用这个网站:(https://carbon.now.sh/)(https://carbon.now.sh/)
【4.2】题目的产出条件
以后题目的产生都将由比赛中产出
【4.2.1】周赛
周赛赛制:IOI or OI 周赛的产出题目level如下:
- T1:语法题
- T2:思维题
- T3:算法题板子
- T4:混合算法题 or 稍微复杂的题目
- 题目数据:每个题目十组数据
【4.2.2】月赛
月赛赛制:ACM 月赛的产出题目level如下:
- 签到题:2个
- 思维题:2个
- 算法板子:2个
- 混合算法or复杂题目or高级算法:2个
- 题目数据:大于等于10组
【4.2.3】校赛
校赛赛制:ACM 校赛的产出题目level如下:
- 签到题:3个
- 思维题:3个
- 算法板子:3个
- 混合算法or复杂题目or高级算法:2~3个
- 题目数据:大于等于10组
【4.3】劣质题目
如果有劣质题目请立即删除!欢迎大家举报!
2 comments
-
Moira Acmer LV 2 @ 2022-8-17 19:01:07
前排兜售各种小零食
-
2021-10-14 1:13:40@
/
- 1