欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Anhui Online Judge如何添加题目

程序员文章站 2022-05-12 08:33:20
...

前言:Anhui Online Judge是以UOJ为蓝本加以修改而成的一个OJ,拥有强大的评测姬和强大的用户们(笑)。但是用户如何添加题目及上传数据呢?Let’s have a look.


  • 如果你是超级用户,你可以在题目列表按下End键,有一个“添加新题”的按钮。点一下会弹出一条消息,点击确定即可。如果你是普通用户,可以联系任意超级用户帮你添加并把你设成该题目的管理员。
  • 接下来进入编辑界面,此处以A+B Problem为例。如下图,编写好题面,按Ctrl+D预览(预览就会自动保存了,当然也可以按Ctrl+S手动保存),然后再按Ctrl+D返回编辑。注意几点:你可以粗略地认为两个换行会被替换成一个换行,所以得打很多空行,否则预览会发现题目全挤到一块儿了;写样例输入\输出时记得在首尾加上< pre>和< /pre>(去掉空格)。Anhui Online Judge如何添加题目
  • 接下来该整理数据了。先创建多组数据,然后新建一个problem.conf文件(数据配置文件),输入以下代码:
use_builtin_judger on
use_builtin_checker ncmp//数据比较方式,在后面详细解释
n_tests 10//数据个数,自己调整
n_ex_tests 0//这个和底下的通常都设为0
n_sample_tests 0
input_pre data//输入文件名,自己调整
input_suf in//输入文件格式
output_pre data//输出文件名,自己调整
output_suf out//输出文件格式,可改为ans等等
time_limit 1//时间限制,自己调整
memory_limit 128//空间限制,自己调整

还得新建个std.cppstd.pas或其他什么,总之文件名必须是std,将数据、标程和配置文件一起打包(建议压缩成zip格式,且不能包含无关文件或子文件夹),按下图操作。
Anhui Online Judge如何添加题目
如下图是一个正确的数据配置:
Anhui Online Judge如何添加题目
如果你没写val.cpp,请在上传好之后点击“禁止使用Hack”,如果写了请无视。什么?你不知道什么是val.cpp?对不起,我无可奉告(我不会告诉你在下面写了)。
啊对了,提交完之后记得修改提交记录可视权限,因为AOJ默认的是所有人都可以查看其他人的代码。
至此数据上传完毕!


  • 发现数据错了怎么办?先清空原有数据,然后再上传,最后一定要点与SVN仓库同步!一定要点与SVN仓库同步!一定要点与SVN仓库同步!否则会出现玄学错误。
  • ncmp单行整数序列;wcmp单行字符串序列;fcmp多行数据(不忽略行末空格,但忽略文末回车)。如果配置错了会出现玄学错误,比方说我有一次搞了个Hello World!的题,用了ncmp结果WA了一上午(;´д`)ゞ
  • val.cpp就是检验输入数据是否正确的东西。先发上A+B Problem这题的代码,然后大家可以自己修改。
#include"testlib.h"
using namespace std;
int main()
{
    registerValidation();
    inf.readInt(0,1000000000,"A");
    inf.readSpace();
    inf.readInt(0,1000000000,"B");
    inf.readEoln();
    inf.readEof();
    return 0;
}

其中testlib.h是要下载并配置的,点击这里就可以下载,然后把这个文件放到MinGW里就可以。不同版本的MinGW路径有微小的差异,所以就不放上来了,希望知道路径的可以私信我的QQ。