系统运行于Ubuntu 14.04 对应的编译器和编译选项如下:
| 语言 | 编译器版本 | 编译选项 |
|---|---|---|
| C | gcc 4.8.4 | gcc Main.c -o Main -fno-asm -O2 -Wall -lm --static -std=c99 -DONLINE_JUDGE |
| C++ | g++ 4.8.4 | g++ Main.cc -o Main -fno-asm -O2 -Wall -lm --static -std=c++11 -DONLINE_JUDGE |
| Pascal | Free Pascal 2.6.2 | fpc Main.pas -oMain -O1 -Co -Cr -Ct -Ci |
| Java | openjdk 1.7.0_79 | javac -J-Xms32m -J-Xmx256m Main.java (Languages except C/C++ has 2 more seconds and 128M more memory when running and judging.) |
| 评测结果 | 缩写 | 含义 |
|---|---|---|
| Pending | PD | 您的提交正排队等待评测。 |
| Pending Rejudge | PR | 因为数据更新或其他原因,系统将重新判你的答案。 |
| Compiling | CP | 您提交的代码正在被编译。 |
| Running & Judging | RN | 您的程序正在运行。 |
| Judging | JG | 我们 正在检查您程序的输出是否正确。 |
| Accepted | AC | 恭喜!您的程序通过了所有数据! |
| Presentation Error | PE | 您的程序输出有格式问题,请检查是否多了或者少了空格 (' ')、制表符('\t')或者换行符('\n') |
| Wrong Answer | WA | 您的程序输出结果错误。 |
| Runtime Error | RE | 您的程序在运行时发生错误。 |
| Time Limit Exceeded | TLE | 您的程序运行的时间已经超出了题目的时间限制。 |
| Memory Limit Exceeded | MLE | 您的程序运行的内存已经超出了题目的内存限制。 |
| Output Limit Exceeded | OLE | 您的程序输出内容太多,超过了这个题目的输出限制。(一般输出超过答案2倍时会触发,强制终止程序,防止恶意输出对硬盘造成压力) |
| Compile Error | CE | 您的程序语法出现问题,编译器无法编译。 |
| System Error | SE | 评判系统内部出现错误 ,我们会尽快处理。 |
| Out Of Contest Time | OCT | 考试已经结束,不再评测提交。 |
有的时候你的程序在本地能编译通过,但提交OJ后却显示编译错误。
这多见于C/C++,一般是因为你本地用的是VS,VS的编译器是MS-VC++,而OJ用的是G++,这两个编译器的标准略有不同,G++更符合标准,下面列出一些常见的导致CE原因:
main 函数必须返回int, void main() 的函数声明会报编译错误。itoa 不是ansi标准函数.__int64 不是ANSI标准定义,只能在VC使用, 但是可以使用long long声明64位整数。如果你使用JAVA语言,请注意类名一定要是Main, 否则也会返回CE。
目前HZQSNOJ有四种类型的比赛:
每场比赛设有若干道题目,比赛开始后,参赛者需在时限内去解决这些题目。
每场比赛都设有实时榜单。
每题耗时:Accepted的那一刻距离比赛开始的时间。
总罚时:所有AC了的题的(耗时+错误次数*20min)的和。
排名时,AC题数优先,题数相同时按罚时排序。
有些比较正式的比赛设有封榜机制,即比赛最后一段时间内的提交结果将隐藏(除了自己都不可见),榜单也会停止更新,新的提交会显示为灰色,留作最后滚榜用。
比赛最后一个小时的提交结果是隐藏的,只有选手本人能看到,在榜单上会显示成代表未知的灰色,以增加比赛紧张气氛。
然后在颁奖会上,将从榜单最后一名开始,一个个揭晓灰色的未知提交,一旦揭晓的结果为通过,这个人的排名就会上升,否则这个人的排名确定,开始揭晓下一个人,以此类推。这样一来,可以从后往前一个个确定最终排名,一旦名次达到获奖名次内,可以直接进行颁奖。整个过程惊险刺激,是整个比赛的亮点所在。
所有题目均在ProblemSet 中,每个题目都有一个唯一的数字编号,称为Problem ID。
当一道题被选入某个非practice模式的比赛中之后,为公平起见,它会在ProblemSet中被隐藏掉,在比赛结束后恢复。
一般如果题目突然不见了,可能就是这个原因,当然也有可能是因为其他原因而被管理员手动隐藏了。
选入比赛中的题目,在比赛界面中,会隐藏掉原来的Problem ID,取而代之的是A, B, C...的代号。在比赛结束后,会在标题旁边显示真正的Problem ID,可以点击前往ProblemSet补题。
ProblemSet中设有一个榜单,积分和等级的计算规则如下。
等级由实力(Strength)决定,当实力达到一定值后自然会升级,而实力又从刷题中来,每道题后面均标有分数(Scores),代表AC这道题之后能提升多少实力。一般来说,越少人做的题目,分数越高,一起刷题的人越多,每道题的分数也越高。需要说明的是,用户的实力值是会根据大环境动态变化的(其实是因为分数在动态变化),如果你AC的题目被更多人AC出来了,你的实力值会下降,另外一方面,OJ内有更多强者涌入的时候,你的实力值也会提升。所以,想要快速升级,那就多刷题,刷难题!