H慧博算法实验室
课程中心01 学习指南与计算思维01.1

LESSON 01.1 · 公开免费

如何使用课程
与在线评测

欢迎来到算法世界!这一课不要求你记住复杂代码。我们先学会看懂课程、读懂题目,再认识一位永远不会疲倦的“代码裁判”。

⏱ 建议 25 分钟🌱 适合零基础💻 准备一台电脑
🤖代码裁判已就位它会公平地检查每一次提交

MISSION · 本课任务

学完这一课,你可以做到

01知道一节课怎样学习02认识什么是 OJ03完成一次代码提交04读懂常见评测结果
01

先认识我们的学习方式

学习算法,就像训练一位机器人

想象你拥有一台机器人。你希望它帮忙整理书桌,可是机器人不会“自己理解”,你必须把每一步说清楚:

走到书桌前拿起一本书判断它属于哪一类放进正确位置

程序也是这样。算法就是一组清楚、有限、可以执行的步骤;代码则是我们用计算机语言写给机器人的说明书。

02

每节课怎么学

五步学习法:看、想、写、测、改

👀 看

阅读概念和例子,先知道今天要解决什么问题。

🧠 想

合上答案,尝试用自己的话说出解题步骤。

⌨️ 写

亲手敲代码。复制代码看起来很快,却很难真正学会。

🚦 测

用样例测试,再提交给在线评测系统检查。

🔧 改

没有通过也没关系,根据提示寻找原因并重新尝试。

一次没有 AC,不叫失败;每修好一个错误,你就多掌握了一种排错能力。

03

认识 Online Judge

OJ:一位速度超快的“代码裁判”

OJ 是 Online Judge(在线评测系统)的缩写。它提前准备了很多组测试数据。当你提交程序后,OJ 会自动完成下面的工作:

1接收代码2编译程序3输入测试数据4比较输出答案5返回评测结果
04

第一次提交

让程序完成 A + B

任务很简单:读入两个整数,输出它们的和。

题目A + B Problem
输入3 5
输出8
C++main.cpp
#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    cout << a + b;
    return 0;
}

提交前的四项检查

  • 使用题目要求的编程语言,例如 C++。
  • 输入和输出完全按照题目格式,不要额外输出“请输入”。
  • 先用题目样例运行一次,确认样例答案正确。
  • 提交完整程序,而不是只提交中间几行代码。
05

读懂裁判的信号

评测结果“交通灯”

AC
全部通过Accepted

太棒了,程序顺利完成任务!

WA
答案错误Wrong Answer

程序能运行,但某些答案不正确。

CE
编译错误Compile Error

代码有语法问题,先看看错误提示。

RE
运行错误Runtime Error

程序跑着跑着“摔倒”了,可能数组越界。

TLE
超出时间Time Limit Exceeded

方法太慢,需要寻找更快的算法。

MLE
超出内存Memory Limit Exceeded

程序使用的存储空间太多。

06

公开练习平台

在哪里可以体验 OJ?

不同平台的按钮位置可能不同,但“读题—编程—提交—查看结果”的过程基本一样。初学时任选一个熟悉即可,不需要到处重复注册。

🔐 未成年人注册公开平台时,请在家长或老师指导下进行,不公开真实姓名、学校、手机号等个人信息。

07

闯关检查

你能拿到本课的通行证吗?

1. OJ 的主要工作是什么?

自动编译并运行我们提交的程序,用测试数据检查答案、运行时间和内存使用是否符合要求。

2. 程序返回 WA,第一件事应该做什么?

先冷静阅读题目和评测信息,检查输入输出格式,并用一个很小的例子手算、对照程序。

3. 为什么不建议只复制老师的代码?

复制只能得到一份相同的文字,亲手思考和输入才能发现自己真正不懂的地方,并形成编程能力。