UOJ题目上传指南

ajcxsu
ajcxsu 2018年03月13日
  • 159 次阅读

由于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指北。

本文链接:https://acxblog.site/archives/uoj_problem_upload_guide.html
本文采用 CC BY-NC-SA 3.0 协议进行许可