UOJ题目上传指南
由于 UOJ 的上传可能不太简单,什么 svn 什么的,其实可以不要用。
于是写个简单的教程。
前言
我们将创建一个题目叫做 Time 来做题目示例。
撰写题面
使用管理员账号(一般是 root)登录进 UOJ,点进题库,右下角“添加新题”。
然后就会在最后一个题里新建一个 New Problem。新题是默认不公开的,可以放心操作。
点进新题,选择“管理”,撰写题面。
题面的格式采用一种叫做 markdown 的语法。绝大多数博客和很多 OJ 都采用这个语法(当然包括我这个博客)。可以去搜索 markdown 来学习简单语法。
同时 UOJ 的 markdown 支持 LaTeX,如同许多支持 LaTex 的 markdown 一样,用 '$' 把公式包起来就 OK 的。
LaTeX 是一种公式编辑语法。随便打一个效果如下:
$a^{\frac {b}{123hhh}} \leq c_2$
实际的代码如下: $a^{\frac {b}{123hhh}} \leq c_2$
LaTeX 的学习较复杂。一般的公式编辑可以用下面这个工具:
LaTeX Editor
编辑完题面之后,可以按‘预览’按钮来观看效果,同时系统也会给你自动保存题面。
呈现效果如下:
制作数据
按照普通的流程制作数据就行。可以直接这样子来设置文件的名字格式:time1.in time1.out time2.in ....
如果只要用到简单配置的话,请一定用 <文件名><数字>.<统一后缀>
的形式来设置数据。
造好了数据之后,请直接用.zip 格式将其打包,里面不应包含有任何子文件夹。
回到管理界面,选择数据。在 zip 上传数据里选择上传数据。
选择试题配置,作如下图的配置:
大部分参数我们不用说明。其中的额外测试点个数和样例测试点个数我们将在之后说明。一般情况下填 0 就行。
之后选择禁止使用 hack 即可。此时你提交正解,应该就完全 OJBK 了。
如果配置正常,你应该可以在管理界面的左边看见几个多出来的栏目,且不会弹出任何错误的信息。
对于额外测试点的说明
extra test 是指额外数据,在 AC 的情况下会测额外数据,如果某个额外数据通不过会被倒扣 3 分。
至于样例,样例一定是前几个额外数据,所以有一个 n_sample_tests 表示是前多少组是样例。你需要把题面中的样例和大样例放进额外数据里。
额外数据命名形如 ex_www1.in, ex_www2.in, ... 这个样子。
更新数据 / 配置文件
直接上传数据 / 更新配置文件,之后选择与 svn 仓库同步即可。
开启 Hack
需要在 data 的 zip 中包含 std.cpp 和 val.cpp(数据检验器)。
具体的编写方法请参考:UOJ 指北 - 数据检验器
之后上传新的数据,选择使用 hack 即可。
部分分
需要对 problem.conf 进行更加详细的配置。
具体的编写方法请参考:UOJ 指北 - 特殊需求配置
答案比较器
如果要使用特殊的检验方法(精度测试),需要对 problem.conf 进行配置。
如果要自己写 checker.cpp... 我反正不会。
请参考:
UOJ 指北 - 传统题配置
更多信息请查看 UOJ 指北。
本文链接:https://pst.iorinn.moe/archives/uoj_problem_upload_guide.html
许可: https://pst.iorinn.moe/license.html若无特别说明,博客内的文章默认将采用 CC BY 4.0 许可协议 进行许可☆