Domain

请将鼠标放置右上角用户名处,点击“我的域”,再点击“创建域”,创建您的域。

  1. 域的ID是固定的,创建域后无法进行修改。ID是进入您的域的唯一凭证,它将呈现在您的域的url上。
  2. 域的名称是可以随意更改的,在创建域后如果想要修改名称,请点击管理域-编辑域资料进行修改。
  3. 您可以通过管理域-管理权限来修改用户在您的域内所拥有的的权限,默认与主域的权限相同。
  4. 默认域为 system(即主域),用户直接访问 HGNUOJ 域名就会访问此域,点击 HGNUOJ Logo 会从任意域跳转回 system 域。
  5. 每个域的题库、讨论、训练以及比赛是独立且互不影响的。
  6. 在创建训练、作业、比赛时,可以通过 system:数字题号 来使用主域题库中的题。

为防止资源乱用,仅限老师和超级管理员可以创建自己的域。比如,老师可以为课程创建一个域,然后把题目和学生加入到此域中。

Compilers' Version and Parameters

HGNUOJ 使用 HydroJudge 进行评测,编译参数如下:

  • C(c)
    /usr/bin/gcc -Wall --std=c99 -o foo foo.c -lm
  • C++(cc)
    /usr/bin/g++ -Wall -std=c++14 -o foo foo.cc -lm
  • C++17(cc.cc17)
    /usr/bin/g++ -Wall -std=c++17 -o foo foo.cc -lm
  • C++17(O2)(cc.cc17o2)
    /usr/bin/g++ -Wall -std=c++17 -o foo foo.cc -lm -O2
  • C++14(cc.cc14)
    /usr/bin/g++ -Wall -std=c++14 -o foo foo.cc -lm
  • C++14(O2)(cc.cc14o2)
    /usr/bin/g++ -Wall -std=c++14 -o foo foo.cc -lm -O2
  • C++11(cc.cc11)
    /usr/bin/g++ -Wall -std=c++11 -o foo foo.cc -lm
  • C++11(O2)(cc.cc11o2)
    /usr/bin/g++ -Wall -std=c++11 -o foo foo.cc -lm -O2
  • Python 3.10.6(py)
    /usr/bin/python3.10 -c "import py_compile; py_compile.compile('/w/foo.py', '/w/foo', doraise=True)"
  • Pypy3 3.8.13(pypy)
    /usr/bin/pypy3 foo.py
  • Java(java)
    /usr/bin/bash -c "javac -d /w -encoding utf8 ./Main.java && jar cvf Main.jar *.class >/dev/null"
  • Pascal(pas)
    /usr/bin/fpc -O2 -o/w/foo foo.pas
  • Golang(go)
    /usr/bin/go build -o foo foo.go
  • Rust(rs)
    /usr/bin/rustc -O -o /w/foo /w/foo.rs
  • Ruby(rb)
    /usr/bin/ruby foo.rb

Limitations

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

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

IO

若无特殊说明,HGNUOJ 使用标准输入输出(控制台输入输出,屏幕输入输出,STD I/O)。

Judge Status

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

Compile Error

可能有以下情况:

  • 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 格式是不正确的

Training

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

Contest

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

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

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

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

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

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

Accepted Ratio

通过率的影响极其恶劣,HGNUOJ 不提供也不承认通过率。

RP Algorithm

RP 可由题目,活动,比赛等获得。

Difficulty Algorithm

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

因此,请注意以下几点:

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

Dataset Format

详见配置文档

Forgot Password and/or Username

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

如果您确信您的账号被盗或者忘记了账号和/或密码,请及时Reset Password or Find Username