北京交通大学 计算思维与算法实训平台

用户手册

Infinity 创建于 18/1/23 15:57 修改于 18/10/2 22:19

1 排名规则:ACM-ICPC 规则

在公开比赛和课堂作业规定时间内,本系统使用ACM-ICPC规则排名,按照选手正确解答题目数量总用时进行排序。每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚 20 分钟时间,未正确解答的试题不记时。例如:A、B 两选手都正确完成两道题目,其中 A 选手提交这两题的时间分别是比赛开始后 1:00 和 2:45,B 选手为 1:20 和 2:00,但 B 选手有一题提交了 2 次。这样 A 选手的总用时为 1:00 + 2:45 = 3:45 而 B 选手为 1:20 + 2:00 + 0:20 = 3:40,所以 B 选手以总用时少而获胜。

# Who = Penalty A B
1 B 2 220 (+)
1:20
(+1)
2:00
2 A 2 225 (+)
1:00
(+)
2:45

2 课程成绩计算方法

2.1 课堂测试记分规则

2.1.1 基础成绩

课堂测试的基础成绩基于 ACM-ICPC 规则的排序 进行等级转换,对应关系为:

A B C D F T
前 10% 前 30% 前 60% 有 AC 有提交 无提交
  • 百分比基于选课总人数
  • 乘以百分比后上取整

注:无提交视为缺勤

2.1.2 最终成绩

课堂测试规定时间 结束后一个星期之内,要求把未完成的题目都做完,谓之 补齐。如果所有题目都补齐(Y),则提高 0.5 级;否则(N),降低 0.5 级。

2.2 期末测试成绩记分规则

期末测试成绩基于 ACM-ICPC 规则的排序 进行等级转换,对应关系为:

A+ A B+ B C+ C D+ F
前 10% 前 20% 前 30% 前 40% 前 60% 有 AC 有提交 无提交
  • 百分比基于选课总人数
  • 乘以百分比后上取整

注:没有补题环节

2.3 课程成绩记分规则

多次课堂测试成绩与期末测试成绩按比例综合而成,一般期末测试成绩的权重高于课堂测试。

3 评测环境

3.1 Compilers

Linux x64 platform (Ubuntu 16.04)

3.1.1 C: gcc 5.4.0

$ gcc Main.c -o Main -fno-asm -O2 -Wall -lm --static -std=c11 -DONLINE_JUDGE
#include <stdio.h>

int main(void)
{
    printf("Hello world!\n");
    return 0;
}

3.1.2 C++: g++ 5.4.0

$ g++ -fno-asm -Wall -O2 -lm --static -std=c++11 -DONLINE_JUDGE -o Main Main.cc
// DO NOT include `stdafx.h'.
// GNU c++ compiler's supports `bits/stdc++.h', which includes the whole C++ Standard Template Library

#include <bits/stdc++.h>

using namespace std;

int main(int, char *[])
{
    cout << "Hello world!" << endl;
    return 0; // return 0 or you will get Runtime Error
}

3.1.3 Java: javac 1.8.0

$ javac -J-Xms64m -J-Xmx128m Main.java
// DO NOT use package declaration

public class Main { // use Main as public class name
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}

3.1.4 Python: python 3.5.2

$ python3 Main.py

Use input() to read, print() to write.
All your syntax error will result in Runtime Error.

3.2 Frequently asked questions

3.2.1 Java public class name

Main

3.2.2 printf format for 64 bit integer in C / C++

%lld / %llu

3.2.3 Differences between GCC / G++ and MSVC

  • gcc/g++没有stdafx.h
  • main函数必须返回int类型,void会编译错误
  • i 在循环外失去定义 "for(int i=0...){...}"
  • itoa不是标准ANSI函数
  • qsort因为涉及系统函数调用,被OJ屏蔽,不能调用
  • __int64 不是ANSI标准定义,可以使用long long声明64位整数类型

3.3 Verdicts

3.3.1 In queue

评测机正忙,你的提交正在排队等待

3.3.2 Compiling

正在编译

3.3.3 Testing

正在运行

3.3.4 Accepted

程序通过!

3.3.5 Presentation Error

答案基本正确,但是格式不对

3.3.6 Wrong Answer

答案不对,仅仅通过样例数据的测试并不一定是正确答案,一定还有你没想到的地方

3.3.7 Time Limit Exceeded

运行超出时间限制,检查下是否有死循环,或者应该有更快的计算方法

3.3.8 Memory Limit Exceeded

内存超过限制,数据可能需要压缩,检查内存是否有泄露

3.3.9 Output Limit Exceeded

输出超过限制,你的输出超过正确答案长度的两倍+1024字节

3.3.10 Runtime Error

运行时错误(非法的内存访问、数组越界、无效指针、调用禁用的系统函数等)  

3.3.11 Compile Error

编译错误,请点击后获得详细错误输出