Rules

基本信息

比赛信息

  • 每场比赛都将举办在一周中的周六。
  • 为了方便来自不同时区的队伍,我们设置了三个时间窗口。参加比赛的队伍可以自由选择三个窗口中的任意一个参加:
    • 周六的 13:00 ~ 18:00 (UTC +8)
    • 周六的 19:00 ~ 24:00 (UTC +8)
    • 周日的 02:00 ~ 07:00 (UTC +8)
  • 每场比赛的时长均为 5 小时。
  • 比赛的规则为传统 ICPC 规则。
  • 每场比赛将包含若干道题目,通常为 10 至 13 道。
  • 在比赛开始 4 小时后将封榜,此时排行榜上将不会显示 4 小时后的提交的结果。
  • 比赛将按照通过数为第一关键字降序,罚时为第二关键字升序来排名。
  • 一道题目的罚时为通过此题的时间(分钟数)。任何一次错误的提交(不含编译错误)将使得该题罚时增加 20 分钟。
  • 队伍的总罚时为所有通过题目的罚时之和。

比赛

技术信息

  • 比赛时使用的平台为 DOMjudge 8.1.3。
  • 评测机使用的 CPU 为 Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz。
  • 可用的语言包含 C、C++、Python 3 与 Java。
  • 对于 C 与 C++ 语言,使用的编译器版本为 GCC 10.2.1,开启 O2 优化。C++ 语言采用的标准为 C++ 17。
  • 对于 Python 3 语言,使用的 Python 版本为 Python 3.9.2。
  • 对于 Java 语言,使用 OpenJDK 11.0.16。
  • 提交源程序的大小不能超过 256 KB。

提问与公告

  • 在比赛期间,裁判可能会通过 DOMjudge 系统中的 Clarifications 发送公告,公告的内容可能包含对试题内容的解释、修改或其他重要信息。选手应当定期查看公告内容,因遗漏公告信息而造成的影响不能作为申诉的理由。
  • 在比赛期间,若选手对比赛存在问题,选手应当使用 DOMjudge 系统中的提问功能进行提问,不推荐采用其他通讯方式进行提问。

参赛要求

作为线上的非盈利比赛,我们无法设计额外的监考手段,因此在参赛机器数、预先编写代码等要求上不做额外的限制。但选手需要遵守如下原则:

  • 在参赛期间,选手不应与除团队成员以外的任何人进行交流,也不应将自己队伍的解题资料(包括但不限于解题思路、解题代码或其他辅助程序)分发至网络。
  • 在参赛期间,选手不应提交恶意代码,包括但不限于对评测机的攻击,以及恶意占用评测系统资源。
  • 每一轮比赛使用的题目可能来自此前已举行过的比赛。如果参赛的队伍中有任何一人参加过该比赛,则该名队员不应继续参加这场比赛。
  • 若参加该比赛的队伍与在 Universal Cup 中的队伍组成相同,则该队伍的成绩将被替换为其在原比赛中的成绩。
  • 在比赛时,每位队员可以同时使用自己的电脑,但在同一时刻只允许使用一台电脑来编写代码。

若选手违反上述原则,或做出了其他裁判组认为干扰了比赛正常运行的行为,则选手可能被处以警告、被移除比赛或禁止参加该赛季比赛的处罚。规则的解释权和执行权归 Universal Cup 组委会所有。

申诉

若选手对比赛过程中裁判的处理方式、比赛的试题或比赛的结果有异议,请于比赛结束后 48 小时内向 appeal@ucup.ac 发送邮件说明问题。超出该时间的申诉视为无效。

Rating

请注意:现在的 Rating 系统仍在实验当中,在未来可能会有所改动。

Grand Prix 30 系统

在每场比赛中,所有进入前 30 名的队伍将会根据下表获得 GP30 点数:

排名点数排名点数排名点数
110011242110
2751222229
3601320238
4501418247
5451516256
6401615265
7361714274
8321813283
9291912292
10262011301

比赛 Rating

在每场比赛结束后,将会计算所有有效参赛队伍的 Rating。每支队伍的 Rating 计算方式为:

$$ R = 200 \times \frac{Solved}{maxSolved} \times \frac{n_{\mathrm{teams}} - rank + 1}{n_{\mathrm{teams}}} + \mathrm{GP30} $$

其中各参数的含义如下:

  • $R$ :最终该队的 Rating,为一个在 $[0, 200]$ 内的实数。
  • $Solved$ :该队伍实际解决的问题数。
  • $maxSolved$ :解题数最多的队伍所解决的问题数。
  • $n_{\mathrm{teams}}$ :解决了至少一道题目的队伍数。没有解决任何题目的队伍不被计算在内。
  • $rank$ :该队伍的最终排名。
  • $\mathrm{GP30}$ : 该队伍的 GP30 点数。如果该队伍没有进入前 30,则此项点数为 0。

赛季 Rating

一个队伍在赛季中的 Rating 将按照其在每场比赛中的 Rating 计算而来。具体地,设一个队伍在赛季中所有的比赛得到的 Rating 按降序排序后为 $r_0, r_1, r_2, \cdots, r_{m-1}$ ( $r_0 \geq r_1 \geq r_2 \geq \cdots \geq r_{m-1}$ ,则其最终 Rating 为:

$$R = k \sum_{i=0}^{m-1} (1-k)^{i} r_i$$

第一届 Universal Cup 中,参数 $k$ 将被取为 $\displaystyle\frac{1}{4}$。

其他情形

当出现以下情形时,队伍可向组委会申请添加其在对应比赛的 Rating:

  • 当一个队伍在现场参加了一轮比赛后,将按照其现场的成绩计算 Rating。
  • 当一个队伍为一轮比赛的命题者、验题者时,将获得所有通过了至少一道题的队伍所得 Rating 的平均数作为其 Rating。