LESSON 01.1 · 公开免费
如何使用课程
与在线评测
欢迎来到算法世界!这一课不要求你记住复杂代码。我们先学会看懂课程、读懂题目,再认识一位永远不会疲倦的“代码裁判”。
MISSION · 本课任务
学完这一课,你可以做到
先认识我们的学习方式
学习算法,就像训练一位机器人
想象你拥有一台机器人。你希望它帮忙整理书桌,可是机器人不会“自己理解”,你必须把每一步说清楚:
程序也是这样。算法就是一组清楚、有限、可以执行的步骤;代码则是我们用计算机语言写给机器人的说明书。
每节课怎么学
五步学习法:看、想、写、测、改
阅读概念和例子,先知道今天要解决什么问题。
合上答案,尝试用自己的话说出解题步骤。
亲手敲代码。复制代码看起来很快,却很难真正学会。
用样例测试,再提交给在线评测系统检查。
没有通过也没关系,根据提示寻找原因并重新尝试。
一次没有 AC,不叫失败;每修好一个错误,你就多掌握了一种排错能力。
认识 Online Judge
OJ:一位速度超快的“代码裁判”
OJ 是 Online Judge(在线评测系统)的缩写。它提前准备了很多组测试数据。当你提交程序后,OJ 会自动完成下面的工作:
第一次提交
让程序完成 A + B
任务很简单:读入两个整数,输出它们的和。
3 58#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
cout << a + b;
return 0;
}提交前的四项检查
- 使用题目要求的编程语言,例如 C++。
- 输入和输出完全按照题目格式,不要额外输出“请输入”。
- 先用题目样例运行一次,确认样例答案正确。
- 提交完整程序,而不是只提交中间几行代码。
读懂裁判的信号
评测结果“交通灯”
太棒了,程序顺利完成任务!
程序能运行,但某些答案不正确。
代码有语法问题,先看看错误提示。
程序跑着跑着“摔倒”了,可能数组越界。
方法太慢,需要寻找更快的算法。
程序使用的存储空间太多。
公开练习平台
在哪里可以体验 OJ?
不同平台的按钮位置可能不同,但“读题—编程—提交—查看结果”的过程基本一样。初学时任选一个熟悉即可,不需要到处重复注册。
中文题目和题单丰富,适合算法竞赛学习。
访问公开网站 ↗OOpenJudge包含 NOI 等公开题库,页面结构比较直接。
访问公开网站 ↗CCodeforces国际竞赛平台,更适合有一定基础后挑战。
访问公开网站 ↗🔐 未成年人注册公开平台时,请在家长或老师指导下进行,不公开真实姓名、学校、手机号等个人信息。
闯关检查
你能拿到本课的通行证吗?
1. OJ 的主要工作是什么?
自动编译并运行我们提交的程序,用测试数据检查答案、运行时间和内存使用是否符合要求。
2. 程序返回 WA,第一件事应该做什么?
先冷静阅读题目和评测信息,检查输入输出格式,并用一个很小的例子手算、对照程序。
3. 为什么不建议只复制老师的代码?
复制只能得到一份相同的文字,亲手思考和输入才能发现自己真正不懂的地方,并形成编程能力。