配置UOJ数据的正确姿势

最近瞎搞用开源UOJ搭了个OJ,在题目配置方面搞了挺久,一开始看vfleaking的文档还折腾了SVN,特意写下这篇文章为后来人少走弯路

Step 1

拥有管理权限并设置好题面,支持$LaTex$和Markdown

Step 2 设置数据

参考网站

https://vfleaking.github.io/uoj/problem/

https://universaloj.github.io/post/%E9%A2%98%E7%9B%AE%E7%AE%A1%E7%90%86%E6%A6%82%E8%BF%B0.html

传统题上传数据格式

假如输入输出文件名是abc.in/out,那么您的.zip压缩包需要这些东西(不要建子目录!!!)

  • 所有abc1.in/out,abc2.in/out
  • 一个problem.conf,格式:
1
2
3
4
5
6
7
8
9
10
11
12
use_builtin_judger on
use_builtin_checker ncmp //如果是字符串或浮点数等比较方式(第二个参数)请阅读参考网站相关资料
n_tests 10
n_ex_tests 0
n_sample_tests 0 //一般的如果我们不需要样例数据(1_sample_test.in/out)和额外数据(ex_abc1.in/out)的话,把那两个参数置为0就好了
input_pre abc //输入文件前缀,比如"abc"
input_suf in
output_pre abc //输出文件前缀,比如"abc"
output_suf out
time_limit 1
memory_limit 512
output_limit 64 //time_limit单位是秒,memory_limit单位是MB,output_limit是输出文件限制,单位是MB

上述参数代表什么意思请看参考网站

  • 一份std.cpp,需要文件输入输出
  • 一份val.cpp,检验hack数据是否合法,但是现在我也不会用,你可以随意写但是不能为空也不能编译错误,以后会补上怎么认真写val.cpp这个坑

非传统题上传数据格式

坑,待填

Step 3

上传数据等待完成后点击与SVN仓库同步即可,如果您没有认真地写val.cpp的话请在右边取消Hack