Skip to content

Sjtu OnlineJudge Wiki v2.0

Zhou Fan edited this page Sep 25, 2017 · 12 revisions

Sjtu Online Judge 使用手册

第一部分 学生使用

1.0 关于OJ

Sjtu Onlinejudge(acm.sjtu.edu.cn/onlinejudge)是一个在线的评测系统。系统提供了大量的题目供使用者练习编程能力与算法技巧。另外系统也有完善的比赛与作业系统供日常教学、比赛选拔所用。用户需要提交题目的由程序语言实现的解法,由评测系统进行自动地评测之后给出评测的结果。

1.1 关于输入输出

由于系统采取无人工的机器评测,用户提交程序的输入输出格式必须与题目中描述的输入输出格式完全一致才能被判对,用户不能随意地输出多余无用的信息。另外,评测系统所接纳的程序应采用标准输入输出,一切企图读入服务器上其他文件的请求将被评测系统拒绝。

1.2 使用语言

目前在线评测系统提供3种语言供用户选择,包括C、C++、Java,用户在提交程序的时候必须选定使用哪一种语言。要注意不要使用一些编译器的特性,这样会导致用户所提交的程序在用户自己的编译环境中能正确运行,但是在评测系统上运行错误。目前评测系统采用的编译器版本为:

gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4

g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4

java version "1.6.0_36"
OpenJDK Runtime Environment (IcedTea6 1.13.8) (6b36-1.13.8-0ubuntu1~14.04)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)

Python 2.7.6

1.3 关于评测

评测系统在接受了用户提交的程序之后会开始评测,页面将自动跳转至评测状态。用户可以在评测记录的顶端看到自己提交的记录,上面显示了程序运行的结果、程序最后的得分(满分为100分)、程序运行所用的时间(程序运行的时间限制通常均为1s,特殊情况会在题目描述中说明)、以及程序运行所消耗的内存。用户可以点击记录栏中的评测结果一栏看到详细的评测结果,其中包括每一个数据点所用的时间、内存以及最后的结果,还有提交程序的源代码。

其中各类评测结果的意义如下:

Judging 评测中

Accepted 正确

Wrong Answer 答案错误

Runtime Error 程序运行错误

Compile Error 程序编译错误

Time Limit Exceeded 程序运行超过时间限制

Memory Limit Exceeded 程序运行超过内存限制

1.4 关于比赛、作业界面

使用者作为学生可以参与教学指定的比赛和作业。在比赛或者作业界面中可以找到自己想要参加的比赛然后点击“确认参赛”的按钮进行确认。作业与比赛的界面分为几个部分,首先是比赛的起止时间、比赛的进度,然后是比赛所包括的题目,用户可以点击相应的题目按钮进入。Q&A的栏目可以在比赛和作业过程中进行提问。最后有一个排名表,分别记录了每一个参赛选手每一道题目的情况、通过题目的数量、罚时以及总的得分。对于每一道题目的记录,如果显示为绿色代表已经通过,其中第一行的数字代表时间,第二行的数字代表提交的次数。如果该题没有通过但是有提交记录,则显示为红色,并且只显示提交的次数。

1.5 P1000的样例程序

#include <stdio.h>

int main(void) {
    int a, b;
    scanf("%d%d", &a, &b);
    printf("%d", a + b);
    return 0;
}
#include <iostream>
using namespace std;

int main(void) {
    int a, b;
    cin >> a >> b;
    cout << a + b;
    return 0;
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        System.out.println(a + b);
    }
}
print sum(map(int,raw_input().split()))

第二部分 助教使用

2.1 添加题目

网页端没有添加题目的途径,需要将题目所需文件打包后由管理员上传。

2.2 管理 Dashboard

拥有权限的助教登陆之后可以看到有一个管理的界面(Dashboard)。其中包括以下几个元素:

2.2.1 显示/隐藏/更新题目 Show/Hide/Refresh Problem

助教在管理比赛的时候可以在比赛前隐藏题目,开考之后显示题目。如果题目需要作修正更改,则可以选择更新题目。输入相对应的题目的ID并且选择相应的操作即可。

2.2.2 重新评测某条记录 Rejudge Record

助教可以在评测状态中看到所有的评测记录,其中的第一栏是评测的记录号。填入记录号,后可对改记录进行重新评测(当前一条评测结果出现问题的情况下)。

2.2.3 人工给分 Manually Judge Record

助教可以以人工的方式给某条评测记录进行给分,给分将覆盖机器评测的分数(当前一条评测结果出现问题的情况下)。

2.2.4 创建一个比赛 Create Report

助教填入比赛名称、是否可见、起止时间、比赛所包含题目的ID以及参与比赛的学生名单之后即可顺利地创建一场比赛。

2.2.5 显示/隐藏/删除比赛 Show/Hide/Remove Report

助教可以选择某一个已有的比赛后进行显示、隐藏的操作,同时也可以选择删除不需要的比赛。

Current Admin's Contact: i@evensgn.com

Clone this wiki locally