Frequently Asked Questions
Q:NBU OJ支持哪些语言?
A:到目前为止,NBU OJ支持C、C++、JAVA这三种语言。
Q:在NBU OJ上能使用哪些输入和输入
A:你的程序会通过输入流(Standard Input)读取输入,然后通过输出流(Standard Output)写输出。举个例子,你可以使用sacnf在C,或cin在C++,或new Scanner(System.in).Next()在JAVA读取输入,然后可以使用printf在C,或使用cout在C++,或System.out.println在JAVA写输出。用户的程序是不允许打开和读写文件的,如果你这么做了,那么会得到Runtime Error的信息。
比如要通过NBU OJ上题号为1002的题目,你可以使用以下几种编码形式:
C代码:
#include <stdio.h>
int main(){
int a,b;
while(scanf("%d %d",&a, &b) != EOF)
printf("%d\n",a+b);
return 0;
}
C++代码:
#include <iostream>
using namespace std; int main(){
int a,b;
while(cin >> a >> b)
cout << a+b << endl;
return 0;
}
Java代码:
import java.io.*;
import java.util.*;
public class Main {
public static void main(String args[]) throws Exception {
Scanner cin = new Scanner(System.in);
while (cin.hasNext()) {
int a = cin.nextInt(), b = cin.nextInt();
System.out.println(a + b);
}
}
}
Q: 为什么我的程序在C++/C下能正常编译,但是使用G++/GCC就会出现Compile Error
A: GCC/G++和C/C++有所不同,例如:
1.在G++/GCC下main函数必须定义成int型,定义成void main会得到Compile Error。
2.循环变量i定义在for语句块之内"for(int i=0...){...}"也会出错。
3.在G++/GCC中itoa不是一个ANSI函数,但是在C/C++中是的。
Q: 为什么我的JAVA程序在自己机器上能正常编译运行,但是交上去就会出现Compile Error
A: 主类名必须是Main
Q: 为什么使用64位整形long long或者__int64会出现Compile Error
A: 有些编译器不支持long long,有些编译器不支持__int64,请使用编译器c++(vs2010),两者都支持
Q:程序提交后,评测返回的那些结果是什么意思?
A: 下面是常见的OJ评判结果以及它们表示的意思:
(1)Accepted(AC):程序正确。恭喜你!
(2)Pending: 提交太多了,OJ无法在第一时间给所有提交以评判结果,后面提交的程序将暂时处于排队状态等待OJ的评判。这个时间一般不会太长。
(3)Compile Error(CE): 编译错误。程序编译失败,单击相关链接可以查看错误原因。不同的OJ选用的编译器可能不同,对有些库函数的支持与否也会不同。
(4)Wrong Answer(WA): 答案错误。程序编译成功,并且没有发生运行时错误,但没有(完全)通过题目的测试数据,单击相关链接可以查看引起错误的那一组测试数据。此时应先返回程序检查输出格式是否有错误,在没有这些错误的情况下再考虑算法是否有缺陷或错误。WA大多还是由算法缺陷或错误引起的。
(5)Presentation Error(PE): 输出格式错误。程序编译成功,没有发生运行时错误,对题目的测试数据求得了正确结果,但结果的输出格式与题目要求的格式不一致。PE通常是由于多/少输出空格或空行等空白字符引起的。
(6)Runtime Error(RE): 运行时错误。程序编译成功,但发生了运行时错误。RE通常是由于数组索引或指针越界、堆栈溢出、浮点格式异常或除0等原因引起的。
(7)Time Limited Exceeded(TLE): 时间限制错误。程序运行时间超过了题目要求的最长时间限制。TLE出现时,需要对程序进行优化,设计时间复杂度更低的算法。
(8)Memory Limited Exceeded(MLE): 内存限制错误。程序运行占用的内存超过了题目要求的最大内存限制。MLE出现时,需要对程序进行优化,设计空间复杂度更低的算法。
(9)Output Limited Exceeded(OLE): 输出限制错误。程序运行输出的内容超过了题目要求的最大输出内容限制,即题目没有要求的输出内容。OLE一般是由于程序陷入死循环后一直输出引起的。