Skip to content

使用说明

Zisu Zhang edited this page Aug 25, 2023 · 3 revisions

基本概念

题目,比赛与训练计划

题目

在Aoi内,题目的概念和传统OJ是类似的。用户可以在题目页面提交自己对题目的解答,并由Aoi平台自动进行评测。

与传统的OJ不同,Aoi平台对题目几乎没有限制——一切“提交解答、后台评测、返回分数结果”的需求均可以实现为题目。 为了支持各种评测请求,具体的评测逻辑交由评测器实现,AOI平台仅做下列约定/规定:

  1. 题目的提交/评测必须用 problem-config 格式描述。
  2. 题目的评测结果必须包含:
    1. 归一化到 [0, 100] 浮点区间的标准分数
    2. 形式为 Record<string, number> 的性能描述结果
    3. 评测状态字符串
    4. 评测状态描述字符串
  3. 对于更为详细的信息,需要格式化为 solution-details 格式,并以JSON文件保存在OSS中

目前,官方评测机实现了UOJ数据格式的评测。

比赛(题单)

Aoi的比赛功能远比传统OJ强大。具体而言,Aoi支持:

  • 自定义比赛阶段:可以设置并控制比赛每一个阶段的各项功能,从而兼容OI、IOI、ACM等传统赛制与各种新赛制。
  • 自定义Ranklist:通过Ranker可以任意定制排行榜。支持多排行榜、排行榜显示控制等,也可以完全关闭排行榜节约计算资源。
  • 基于比赛的题单:比赛中可以提交在题库无法查看、提交的题目,供训练使用。

训练计划

Aoi中的训练计划是比赛(题单)的集合。您可以在一个计划中添加多个比赛,并制定报名某个比赛所需要的前置条件。 具体而言,您可以控制用户参加某个比赛/题单,需要满足下列的若干条件:

  • 在某场比赛中,获得至少多少总分;
  • 在某场比赛的某些题目中,获得至少多少总分。

组织与权限控制

Aoi中,所有的题目、比赛、训练计划都逻辑上属于某个特定的组织。对于这三个功能,Aoi提供两套权限控制机制:

可见性控制

题目、比赛、训练计划都拥有一个可见性设置。可见性分为如下三种:

  • 公开(Public):不在当前组织内的用户亦可见。
  • 受限(Restricted):仅当前组织内的用户可见。
  • 私有(Private):只有管理员和权限规则显式允许的用户可见。
image

权限规则

权限规则提供细粒度的权限控制。对于每个题目、比赛、训练计划,您可以单独设置特定用户/小组的权限,从而提供最细粒度的控制。

一个建议的设置是,对于保密性高的题目,设置为私有,并创建单独的、包含其的比赛。比赛可以设置为受限,并只允许信任的学生报名。

题目管理

比赛管理

训练计划管理

组织管理

OSS配置

在Aoi中,组织内若想使用文件相关功能,必须配置OSS。您可以选择S3兼容的SaaS提供商,如Amazon S3、Cloudflare R2、阿里云OSS等;亦可选择自行部署S3兼容的OSS服务,如MinIO。