Jzoj Online Judge FAQ

Q:会员都有哪些特殊权限?
A:1. 会员专用题库(不断建设中);
    2. 提交程序结果错误时,提供第一个错误的输入文件下载,以供进一步调试和查错; 下载方法:“状态”页面,单击“答案错误X”,页面底部"下载 。。。";
    3. “知树”获取,内容为比赛用知识点文字讲解及相关模板代码(不断完善中);
    4. 下载测试数据资格。
    (详见“会员中心”-“HELP”-“VIP权限”)


Q:网站提供的VIP服务都有哪些?
A:1. 会员服务,具体见上;
    2. 解题报告服务(题目页面“报告”链接);
    3. 题目数据下载服务(登陆后题目页面“下载数据”链接);
    4. 原创题目竞赛,比赛前两星期在首页通知,依链接报名;
    5. 竞赛建立,源码查看,题目添加权限,具体请联系管理员QQ:23417690;
    6. 测试数据下载(同一题不会重复收钻;24小时内有下载题数限制,避免过分依赖数据调试)。


Q:竞赛权限都有哪些功能?
A:1. 可选竞赛类型:公开,私有(设置密码参加),报名(报名参加);
    2. 可设置评测类型:IOI(即时公布分数和排名),NOIP(竞赛结束方能查看分数和排名,以最后一次提交程序为准进行评测);
    3. 竞赛拷贝(直接拷贝之前的题目为新的竞赛);
    4. 查重功能。


Q:这个在线裁判系统使用什么样的编译器和编译选项?
A:系统运行于Debian/Ubuntu Linux. 使用GNU GCC/G++ 作为C/C++编译器, Free Pascal 作为pascal 编译器 ,用 openjdk-7 编译 Java. 对应的编译选项如下:

C: gcc Main.c -o Main -fno-asm -Wall -lm --static -std=c99 -DONLINE_JUDGE
#pragma GCC optimize ("O2")
可以手工开启O2优化
C++: g++ -fno-asm -Wall -lm --static -std=c++11 -DONLINE_JUDGE -o Main Main.cc
Pascal: fpc Main.pas -oMain -O1 -Co -Cr -Ct -Ci
Java: javac -J-Xms32m -J-Xmx256m Main.java
*Java has 2 more seconds and 512M more memory when running and judging.

编译器版本为(系统可能升级编译器版本,这里仅供参考):
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
glibc 2.19
Free Pascal Compiler version 2.6.2
openjdk 1.7.0_151


Q:程序怎样取得输入、进行输出?
A:你的程序应该从标准输入 stdin('Standard Input')获取输入,并将结果输出到标准输出 stdout('Standard Output').例如,在C语言可以使用 'scanf' ,在C++可以使用'cin' 进行输入;在C使用 'printf' ,在C++使用'cout'进行输出.

用户程序不允许直接读写文件, 如果这样做可能会判为运行时错误 "Runtime Error"。

下面是 1000题的参考答案

C++:


#include <iostream>
using namespace std;
int main(){
    int a,b;
    while(cin >> a >> b)
        cout << a+b << endl;
    return 0;
}
C:

#include <stdio.h>
int main(){
    int a,b;
    while(scanf("%d %d",&a, &b) != EOF)
        printf("%d\n",a+b);
    return 0;
}
PASCAL:

program p1001(Input,Output); 
var 
  a,b:Integer; 
begin 
   while not eof(Input) do 
     begin 
       Readln(a,b); 
       Writeln(a+b); 
     end; 
end.


Java:

import java.util.*;
public class Main{
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		int a, b;
		while (cin.hasNext()){
			a = cin.nextInt(); b = cin.nextInt();
			System.out.println(a + b);
		}
	}
}

Q:为什么我的程序在自己的电脑上正常编译,而系统告诉我编译错误!
A:GCC的编译标准与VC6有些不同,更加符合c/c++标准:
  • main 函数必须返回int, void main 的函数声明会报编译错误。
  • i 在循环外失去定义 "for(int i=0...){...}"
  • itoa 不是ansi标准函数.
  • __int64 不是ANSI标准定义,只能在VC使用, 但是可以使用long long声明64位整数。
    如果用了__int64,试试提交前加一句#define __int64 long long, scanf和printf 请使用%lld作为格式

Q:如何参加在线比赛?
A:注册 一个帐号,然后就可以练习,点击比赛列表Contests可以看到正在进行的比赛并参加。


其他问题请联系QQ:23417690,或Email:23417690@qq.com

Jzoj 20.10.31