UOJ题目上传指南

Author Avatar
空気浮遊 2018年03月13日
  • 在其它设备中阅读本文章

由于 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

编辑完题面之后,可以按‘预览’按钮来观看效果,同时系统也会给你自动保存题面。

呈现效果如下:

2018-03-13 14-34-43 屏幕截图.png

2018-03-13 14-34-49 屏幕截图.png

制作数据

按照普通的流程制作数据就行。可以直接这样子来设置文件的名字格式:time1.in time1.out time2.in ....

如果只要用到简单配置的话,请一定用 <文件名><数字>.<统一后缀> 的形式来设置数据。

造好了数据之后,请直接用.zip 格式将其打包,里面不应包含有任何子文件夹。
2018-03-13 14-56-53 屏幕截图.png

回到管理界面,选择数据。在 zip 上传数据里选择上传数据。

选择试题配置,作如下图的配置:
2018-03-13 14-58-21 屏幕截图.png

大部分参数我们不用说明。其中的额外测试点个数和样例测试点个数我们将在之后说明。一般情况下填 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 指北 - 答案检查器

更多信息请查看 UOJ 指北。