/ WAOI /

帮助

每个用户可以创建自己的域。比如,老师可以为课程创建一个域,然后把题目和学生加入到此域中。再如,可以把域作为团队功能。

通过合理的设置角色及其权限,可以把域设为公开或私有。

默认域为AKIOI OJ,用户直接访问AKIOI OJ域名就会访问此域,点击AKIOI OJ Logo会从任意域跳转回AKIOI OJ域。

每个域的题库、讨论、训练以及比赛是独立且自治的。

本OJ主域为原创题目以及其他内容

请注意, 域、题目、题单、比赛等一旦创建,不可删除!请谨慎创建。文件一旦上传也不可删除,请善用您的文件空间!

每个域的RP和排名会在每晚12:30自动刷新

用户

AKIOI OJ用户注册后默认加入主域,为default角色,无法创建题目、题单、比赛等。您可以创建自己的域或加入test域创建题目等内容。

该讨论中,您可以申请将自己上传的优质题目合并到题库主干。我们的管理员会对您创建的题目的内容(包括但不限于评测数据等对用户不可见的信息)进行人工审核和适当修改以确认其符合国家基本法律法规。出于质量的考虑,我们也可能会拒绝您完全合法的合并到题库主干的请求。

当某用户提交超过10道优质题目,且账户自身无不良记录,管理员可能会赋予该账号在主域自由创建题目等内容的权限!

TAG标签是显示在您的用户主页的内容,管理员默认拥有MOD的TAG。您可以通过参加AKIOI OJ的活动或者作出贡献等方式获得TAG!TAG内容可以自定义。如果您有机会获得TAG,管理员会向您主动发送站内私信并询问TAG内容。

如果用户出现作弊或其他违反站规的行为,会撤销其在主域的所有权限(包括访问、阅读权限)一段时间作为惩罚,并删除所有TAG!

编译器版本及参数

AKIOI OJ使用jd4进行评测,以docker镜像的形式安装至评测机。所使用的编译器均为创建镜像时debian testing分支的最新版。编译参数如下:

  • Free Pascal
    fpc -O2 -o/out/foo /in/foo.pas
  • C
    gcc -O2 -Wall -std=c99 -o /out/foo /in/foo.c -lm
  • C++
    g++ -O2 -Wall -std=c++11 -o /out/foo /in/foo.cc -lm
  • Java
    javac Main.java
  • Python
    python foo.py
  • Python 3
    python3 foo.py
  • PHP
    php foo.php
  • Rust
    rustc -O -o /out/foo /in/foo.rs
  • Haskell
    ghc -O -outputdir /tmp -o /out/foo /in/foo.hs

限制

AKIOI OJ 评测机使用进程的CPU时间计算时间消耗,时间的限定为题目中评测点所指定的时间。

AKIOI OJ 评测机使用进程虚拟内存与物理内存总和计算内存空间消耗。内存空间默认限定为256MiB,题目中特别指明的,限定为题目中评测点所指定的内存空间。

输入输出

AKIOI OJ 支持且仅支持标准输入输出(控制台输入输出,屏幕输入输出,STD I/O),不支持文件输入输出。

评测状态

  • Waiting 评测:评测请求正在等待被评测机抓取
  • Fetched 评测:评测请求已被评测机抓取,正在准备开始评测
  • Compiling 评测:正在编译中
  • Judging 评测:编译成功,正在评测中
  • Accepted 通过:程序输出完全正确
  • Wrong Answer 不通过:程序输出与标准答案不一致(不包括行末空格以及文件末空行)
  • Time Exceeded 不通过:程序运行时间超过了题目限制
  • Memory Exceeded 不通过:程序运行内存空间超过了题目限制
  • Runtime Error 不通过:程序运行时错误(如数组越界、被零除、运算溢出、栈溢出、无效指针等)
  • Compile Error 不通过:编译失败
  • System Error 错误:系统错误(如果您遇到此问题,请及时在讨论区进行反馈)
  • Canceled 其他:评测被取消
  • Unknown Error 其他:未知错误
  • Ignored 其他:被忽略
有“成绩取消”字样则说明管理员手动标记此记录为取消,可能违反了服务条款,比如代码被发现与其他用户的代码十分相似。

编译错误

可能有以下情况:

  • 1. 递交时选错了编程语言
  • 2. Java 的主类名没有使用 "Main"
  • 3. 对于 C/C++:见下
  • 4. 一般性的编译错误

对 C/C++ 选手的特别提醒:

  • 1. __int64 在 GNU C++ 中应写成 long long 类型
  • 2. main() 返回值必须定义为 int ,而不是 void
  • 3. for 语句中的指标变量 i 将会在如"for (int i = 0...) {...}"语句之后变为无效
  • 4. itoa 不是一个通用 ANSI 函数(标准 C/C++ 中无此函数)
  • 5. printf 中使用 %lf 格式是不正确的

训练

我们精心挑选了一些题目组成了训练计划。单击导航栏的“训练”即可进入!

比赛

按照赛制不同,有不同的递交、排名规则。

OI 赛制所有题目均以最后一次递交为准,特别地,请避免编译错误。

OI 赛制排名规则为:总分高的排在前面,总分相等则排名相同。

ACM/ICPC 赛制所有题目递交后立即评测,以是否通过为准。

ACM/ICPC 赛制排名规则为:通过题目数多的排在前面,通过题目数相同的做题耗时(含罚时)少的排在前。

时间与空间限制以题目说明为准,默认限制参见限制

通过率

通过率的影响极其恶劣,现在 AKIOI OJ 不提供也不承认通过率。

RP 算法

AKIOI OJ RP 分为固定 RP 与浮动 RP ,固定 RP 可由活动、比赛等的奖励获得,浮动 RP 由一般性通过题目获得。

浮动 RP 是一个动态的数值,每个用户在每道题上获得的 RP 都不一样,并且未来也不固定(即浮动之意)。

每道题的浮动 RP 由该题通过总人数与该用户通过此题的名次计算得来。

难度算法

AKIOI OJ 中题目的难度,根据递交数、通过率以及每个递交的递交时间和评测结果,通过算法计算得出。

因此,请注意以下几点:

  • 0. 一般地,难度的数值越大,该题目越难。
  • 1. 新题目的难度可能不准确;在题目获得大量递交之后,难度才会变得较为准确。
  • 2. 越早递交评测的用户代码的评测结果对题目难度影响越大。
  • 3. 题目的难度由算法计算得出,有可能出现不准确的结果。

测试数据集格式

我们只接受后缀名为zip的数据包上传,必须包含以下内容:

  • - Config.ini: 题目配置文件
  • + Input (目录): 放置所有标准测试输入文件
  • |- input0.txt
  • |- input1.txt
  • |- ...
  • + Output (目录): 放置所有标准测试输出文件
  • |- output0.txt
  • |- output1.txt
  • |- ...

Config.ini格式

第一行包含一个整数n,表示总共有n组数据(即Input目录中文件总数等于Output目录中文件总数等于n);

接下来n行,第k行代表第k个测试点,格式为:

[输入文件名]|[输出文件名]|[时限(单位为秒)]|[得分]|[内存限制(单位为KiB)]

其中,输入和输出文件名为 Input 或者 Output 目录中的文件名(不包含Input或者Output目录),且所有数据点得分之和必须为100,如:
input0.txt|output0.txt|1|10|114514

忘记密码和/或用户名

如果您无法登录,请仔细想想,是不是用户名记错了。比如,自己原本想要注册的用户名已经被注册,所以使用了一个带有前和/或后缀的用户名。

如果您确信您的账号被盗或者忘记了账号和/或密码,请及时重置密码或找回用户名