洛谷生存手册 | 第一卷

· · 个人记录

前言

最近看到很多新手在讨论区问关于如何使用洛谷的问题。对于老手来说,这样的问题自然是很烦人,于是我开始准备写这样一个指南,来从一个用户的角度介绍洛谷的各种功能。

本生存手册非官方版本,我会在合适的位置给出官方文档的链接以供参考。

编者小编 \color{#5eb95e}\text{oistr}\color{#0e90d2}\text{DOCTYPE\_OIers}

贡献者(如有疏漏,烦请提醒;按首次贡献时间顺序排序): \color{gray}\text{ThisNameHas20Letters}\color{red}\text{Aw顿顿}\color{red}\text{shygo\_cmll02}

本文采用 CC BY-NC-ND 4.0 许可证进行许可。

善意的提醒:如您需要转载本文,请点击上述许可证的链接,认真阅读上述许可证。一个并不严禁的概括如下,可供参考(但不能起到替代作用!)。

若转载本文,您必须保证

贡献

我计划为本手册在 \text{Github} 上开设一个 \text{Repository}。但现阶段如有建议您可以直接在此博文下面评论说明。

\textbf{Repository} 已经开设好了:zxp2019/luogu-guide: 《洛谷生存手册》官方仓库 | A guide for Luogu,欢迎大家去提 Issues 或者 fork+ PR 贡献你的一份力量。

我的能力有限,有些地方自己也不太懂/没试过。我会在这些地方标注 (需要补充) 。我诚邀有了解这些功能的大佬补充。

定位

我尽可能使本手册通俗易懂,因此您只要有小学语文水平应该就可以读懂。

导航栏

因为写的比较长,长文编辑起来会比较卡,因此我决定分卷进行。这是第一卷。本卷主要介绍以下内容。

全文导航详见 洛谷生存手册 | 导航

Part 1.注册账号

目标:

访问 https://www.luogu.com.cn/ ,进入洛谷主页(如图 1)。

更多关于洛谷,详见 【官方】关于洛谷。

\color{gray}\scriptsize\text{图 1 . 未登录时的洛谷主页}

点击右上角 注册 按钮,进入注册页面(如图 2)。

\color{gray}\scriptsize\text{图 2 . 注册页面}

您可以选择通过电子邮件注册或者通过手机号码注册。此处显示的是通过电子邮件注册的方式。如需通过手机号码注册,请点击 手机号码

注意!不能使用十分钟邮箱注册!否则会被洛谷封号。

依次填入各项信息。建议您再点击 注册 按钮下方的 《洛谷用户协议》,认真阅读一下。然后点击 注册 按钮。(链接:【官方】洛谷用户协议)

(需要补充) 注册成功后,回到主页。这时你看到的主页会和原先稍有不同(图 3)。

\color{gray}\scriptsize\text{图 3 . 登录后的主页, 为保护个人隐私, 对用户名进行了人工处理}

如无特殊情况,以后你在这个浏览器上访问洛谷都会自动登录。如果您在别的设备(或别的浏览器上)访问洛谷,则需要人工登录。

注意!正因为有自动登录,因此如果您在非您本人的设备(例如机房电脑)上使用账号,强烈建议您使用完之后登出(登出的方法见下方)。如果您在一台设备上看到有非您本人的账号登录,应该除帮他登出外不要去乱动他的账号,这是很不道德的行为。

在图 1 所示的未登录页面,点击右上角 登录 按钮,进入登录页面(图 4)。

\color{gray}\scriptsize\text{图 4 . 登录页面}

依次填入您的用户名,密码,以及右图显示的验证码,然后点击 登录 按钮,即可登录。登录后会跳转到图 3 所示的主页。

在主页上,把鼠标悬停在右上角自己的头像上方,会出现一个菜单(图 5)。

\color{gray}\scriptsize\text{图 5 . 菜单}

点击下方的 登出 按钮可以登出。登出后跳转至图 1 所示的主页。

注意!近期洛谷由于服务器原因,有可能会自动登出你的账号,遇到这种情况,不需要大惊小怪,重新登录进去就可以了。

如果您只是临时有事要离开一会,可以选择锁定你的账号,锁定后仅需要输入密码即可解锁。点击 锁定 按钮即可锁定,锁定后会出现图 6 所示的锁定页面。

\color{gray}\scriptsize\text{图 6 . 锁定页面}

到此为止,您就已经注册了一个账号,并且尝试了各一次登录、登出、锁定、解锁。恭喜您完成了本节目标!接下来,你就可以刷题了QwQ

Part 2.开始刷题

目标:

回到主页(如图 3),点击左侧边栏中的 题库 (如图 7)。

\color{gray}\scriptsize\text{图 7 . 左侧边栏}

接下来,你会进入题目列表(如图 8)。

\color{gray}\scriptsize\text{图 8 . 题目列表}

取出其中两行,详细说一下(如图 9)。

\color{gray}\scriptsize\text{图 9 . 题目列表中的两行}

洛谷的题目非常多(主题库就有近 7000 道)。一页显然是无法显示下全部的,所以若你要查看更多的题目,请在整个题目列表的最下方找到翻页按钮区域(图 22)。

\color{gray}\scriptsize\text{图 22 . 翻页按钮区域}

在这一排按钮中,蓝色按钮代表了当前页的编号。你可以进行如下操作。

但是,目前洛谷不支持直接跳转到任意页码。因此,如果你需要跳转到某一离当前页很远的页码,只能自己更改 \text{URL}

回到图 8 所示的题目列表页面,在浏览器上方地址栏查看目前页面的网址(应该是 https://www.luogu.com.cn/problem/listhttps://www.luogu.com.cn/problem/list?page=1)。

如果是前一种,请在后面添上 ?page=<你要去的页的编号,两边尖括号不用加>,如果是后一种,请直接把 1 改成你要去的页的编号即可。改完之后,按下 Enter 就可以了。

更多的时候我们是用查找题目功能来找题。进入图 8 所示的题目列表页面,在上面的 查找题目 部分的输入框中输入你要找的题目的标题或题号,然后点击 搜索 按钮即可。如图 10,查找题目 格雷码

\color{gray}\scriptsize\text{图 10 . 查找题目 \texttt{格雷码}}

如果你想直接搜索题目内容,需要打开旁边的 搜索题目内容 勾选框。

当然,洛谷还提供了更高级的搜索功能。点击下方的 显示高级搜索选项 即可看到更多的搜索选项(图 11)。

\color{gray}\scriptsize\text{图 11 . 高级搜索选项}

你可以指定 所属题库题目难度算法标签来源时间地区 来搜索。

下面我们一起来看一道试机题目:P1001 A+B Problem。

在图 8 所示的题目列表中点击 A+B Problem 即可进入该题目(图 12)。

\color{gray}\scriptsize\text{图 12 . 题目页面 , 以 P1001 为例}

题目主栏大致分为如下几部分。

如果你看到有的题目上方有 征集翻译 的文字,你可以提交翻译,你在提交翻译前应仔细阅读 【官方】翻译提交注意事项。两次以上提交不符合翻译提交注意事项中所要求的翻译的用户可能会被禁言。

如果您看到有题目不符合 【官方】洛谷主题库题目规范,请在 【官方】洛谷主题库试题提供及反馈帖 下方说明,而不是在题目讨论版发帖说明。

题目侧边栏大致分为以下几部分:

对于默认不显示的内容,需要点击 查看 来显示。

在认真读题之后,你就可以开始写程序了。你可以在本机上写代码和调试,也可以利用洛谷的在线 \text{IDE}

在任意洛谷页面点击左侧边栏的 应用 会出现一个菜单(图 13)。

\color{gray}\scriptsize\text{图 13 . 应用菜单}

点击其中的 在线 IDE,进入在线 \text{IDE} 页面(图 14)。

\color{gray}\scriptsize\text{图 14 . 洛谷在线 IDE}

代码 区域输入代码,然后在 输入 区域填写输入内容,随后点击 运行 即可看到在 输出 区域出现了结果。

如果你的程序在运行时出现了错误(\text{Runtime Error , RE}),会在 运行 按钮的旁边显示 运行时错误

如果你的程序编译错误(\text{Compile Error , CE}),会在 运行 按钮的旁边显示 编译失败,并在 输出 区域显示编译信息。

当然,你还可以在右上角选择语言,或者选择是否开 \text{O2} 优化(如果你不知道什么是 \text{O2} 优化,请自行必应或百度搜索)。

洛谷在线 \text{IDE} 有一个好处,就是它的内核基本和洛谷评测机相同,因此对于可能存在未定义行为的代码,使用在线 \text{IDE} 调试更好。(这一点后面还会说到)。

总而言之,调试好程序后,就可以提交了。回到图 12 所示的题目页面,在题目名称下方有一个 提交答案 按钮,点击它,进入提交页面(图 15)。

\color{gray}\scriptsize\text{图 15 . 提交页面 , 以 P1001 为例}

按照提交方式,洛谷的题目可分为两类,提交代码提交答案。大部分题目采用传统方式提交。

提交代码也就是把你的代码提交上去。在图 15 所示的页面,把代码粘贴到光标所在的代码框里,然后点击下面红色的 提交评测 按钮即可。\text{P1001} 即采用的是这种方式。

提交答案是一种新颖的方式,例如 \text{P1008} 三连击 就是一道比较简单的提交答案题。对于这类题目,你可以编程解决,也可以直接手算(如果你有能力的话)。在提交时,你可以选择直接(像提交代码题一样)提交一个按照规定格式输出的程序,这样的话提交方法和提交代码一样。

对于提交答案题,你还可以直接提交一个包含答案的文本文件。将每个测试点的答案按照题目所要求的输出格式写在一个文本文档(.txt 文件)里。对于不同的测试点,它们的答案应该放在不同的文件里。建议把文件按照测试点编号命名,例如

1.txt //注释: 1 号测试点的答案。
2.txt //注释: 2 号测试点的答案。
3.txt //注释: 以此类推。

然后,将这几个文本文档放到同一个压缩包里,压缩包结构应如下所示。

xxx.zip //注释: xxx 可以是任意名字。
 |- 1.txt
 |- 2.txt
 \- 3.txt

即,压缩包内不能包含任何文件夹,也不能包含任何多余的文件。例如下面这样是一个典型错例。

xxx.zip
 \-xxx //注释: 这代表一个文件夹。
    |- 1.txt
    |- 2.txt
    \- 3.txt

注意:压缩包必须是 .zip 格式,不能是 .rar 格式,如果用 WinRAR 创建压缩文件的话,后者是默认选项,千万记得更改。

然后,进入图 15 所示的提交界面,点击 提交文件,看到提交文件页面(图 16)。

\color{gray}\scriptsize\text{图 16 . 提交文件页面,以 P1008 为例}

点击 选择文件 按钮,然后选择刚刚建好的压缩包。

随后页面会变成这样(图 17)。

\color{gray}\scriptsize\text{图 17 . 选择文件之后的提交文件页面}

点击红色的 提交评测 按钮即可。

提交评测后,评测机可能会有一定的时间延迟,这段时间内所有测试点都会显示为 \text{Waiting/Judging},意为等待评测或正在评测。

然后,评测机会对若干个测试数据运行你的程序,并将你的程序对每个数据的输出结果与答案文件比较(比较方式为全文比较忽略行末空格缩进)。以下是几个评测状态。

关于常见错误情况的评测结果以及如何应对,详见 【官方】我的程序评测不通过怎么办?

提交后,会跳转到评测结果页面。如果是编译错误,则根本不会运行所有测试点,而是会显示编译信息(图 20)。

\color{gray}\scriptsize\text{图 20 . 编译错误的评测结果 , 以 R37909797 为例 , 由于这道题目是一道个人题目,因此题目名称作了特殊处理}

其中会显示详细的编译信息,从中你可以看出发生了什么错误。

如果你要查看本次提交的源代码,可以点击 源代码

在侧边栏中会显示本次评测的一些信息。包括

若编译通过,则继续评测全部测试点,等一会(可能需要手动刷新页面)就会出现评测结果,例如图 18,19 所示的页面分别是一次通过的评测和一次不通过的评测(因为有 4 个测试点答案错误)。

\color{gray}\scriptsize\text{图 18 . 一次通过的评测 , 以 R37530180 为例}

\color{gray}\scriptsize\text{图 19 . 一次不通过的评测 , 以 R37529778 为例}

其中 \text{R37529778} 即为本次评测记录的编号。评测记录的编号均以 \text{R} 开头。

洛谷采用了方块的形式来表示每个测试点,比较生动形象。每个测试点所代表的方块里有以下信息。

注意:请不要提交恶意卡评测的代码,这样你会被众人所鄙视,也会被管理员给予惩罚。

注意:如果一直在 \textbf{Judging},也不必惊慌,洛谷的评测机性能很高,一般不会被卡。可以重新提交一次,一般就好了。

注意:近期洛谷评测机性能有波动,因此甚至可能会出现同一份代码两次提交结果不一样的情况。如果你确信自己代码是正确的,但莫名超时,可以多提交几次。

在侧边栏会显示评测记录的状态、所属题目、评测分数、提交时间、提交人等,不再详细说明。

如您想查看此题过去自己的提交记录,请回到图 12 所示的题目页面,点击侧边栏中 历史分数 一栏中的分数(如您没有提交,则这里会显示 ),即可进入评测记录页面(图 21)。

\color{gray}\scriptsize\text{图 21 . 评测记录页面 , 以 P1001 为例}

评测记录页面会以类似题目列表的形式给出每条评测记录的简略信息。每条记录自左向右分别是

如果你想查看本题的最近 400 条评测记录,请在图 12 所示的题目页面中,点击侧边栏上的 提交记录,即可进入一个类似图 \text{21} 的,显示了全部本题的最近 400 条评测记录。这些记录分为 20 页来显示,所以如果你需要查看最近 20\sim 400 条评测记录,请按照类似题目列表的方法进行翻页。

如果你想查看本人的评测记录,请在如图 7 所示的左侧边栏中,点击 记录,即可进入类似图 21 的,显示了全部你的评测记录的页面。

其实,这个评测记录页面是很通用的,它并不只能找上面说的几种评测记录。

在图 21 所示的评测记录页面,找到上方的 查找记录 部分(图 23)。

\color{gray}\scriptsize\text{图 23 . 查找记录}

你需要输入题目编号和用户名(或 \text{TA}\text{uid},图中的 180720 就是我的 \text{uid}),然后点击 搜索 即可(这种搜索方法类似上面说过的题目列表中的搜索题目)。

当然,你还可以在下方 筛选选项 中选择你要搜索的记录的状态。

也许你会在类似图 21 的记录页面看到一种例外情况,用户名显示为黑色的 匿名用户,且状态显示为 \text{Unshown}。这类用户开启了完全隐私保护,除洛谷管理员外的其它用户无法查看具体记录信息(\textbf{TA} 所在团队的管理员也无法查看!)。

事实上,洛谷用户可以决定自己提交的代码以及记录信息是否可被他人看见。调出图 5 所示的菜单,点击 个人设置,可进入个人设置页面(图 24)。

\color{gray}\scriptsize\text{图 24 . 个人设置页面}

点击 使用偏好,看到使用偏好选项卡(图 25)。

\color{gray}\scriptsize\text{图 25 . 使用偏好选项卡 , 部分选项非默认选项}

做题记录隐私 一栏中有三个选项,含义如下。

有时如果一道题目实在想不出来,也没有关系。洛谷提供了题解区域,允许做出此题的用户发表题解,讲解自己做题的思路。通过题解,你可以学到做此题的方法。

在图 12 所示的题目页面,点击 查看题解,即可进入题解页面(图 26)。

\color{gray}\scriptsize\text{图 26 . 题解页面 , 以 P1000 为例}

在主栏中即为全部题解。有的题目题解较多,会分页显示,同样需要按照类似题目列表的方式翻页。

初始时仅第一篇题解展开,其它题解均默认收起,可点击 展开全文 将收起的题解展开。那么,展开之后如何收起呢?在每篇题解的下面,都有一个小条条(图 27)。

\color{gray}\scriptsize\text{图 27 . 所谓的 「 小条条 」}

在这个小条条的右边,点击 收起,即可收起这篇题解。

如果你觉得一篇题解很不错,可以在图 27 所示的,该篇题解的小条条中,点击 符号,就点赞了此题解。成功点赞后 符号会变蓝。刷新页面之后,赞符号右边的赞数也会加一。

如果你觉得这篇题解写得不好,可以点击 符号右边的 符号,就踩了这篇题解,踩之后赞数会减一。

如果你希望和题解的作者交流,可以点击文章下方图 27 所示的小条条中左数第三个 xxx条评论 按钮。会弹出该题解的评论区(图 28)。

\color{gray}\scriptsize\text{图 28 . 一篇题解的评论区 ( 为保护隐私 , 已对用户的用户名及其发言做了处理 )}

在下方的 发表评论 输入框中输入你要写的评论内容,然后点击 发布 按钮即可发布。发言需遵守 【官方】洛谷社区规则。

洛谷的题解实际上就是用户的博客文章,因此它的 赞、踩与评论区 均为博客的 赞、踩与评论区。博客 是一种类似于专栏的东西,每个用户都可以开通自己的博客,并在里面写自己的文章。当然,你也可以提交自己的题解。

注意:洛谷对题解的要求十分严格,多次发布不合要求的题解,是会被处以惩罚的(详见 【官方】题解审核及反馈要求)。而且,大部分题目已经有足够多,足够全面的题解,因此,我不建议初学者发布题解。

博客是很个性化的,有的博客会比题解页面更美观,因此,如果你想在题解作者的博客里看这篇题解,请点击题解右上角的 在 Ta 的博客查看

详尽的对博客的介绍,见后文。

强烈注意:题解仅供你学习思路,有的题解给出了代码,也仅供你参考,而不是直接复制该代码然后提交(抄题解,\textbf{ctj})!洛谷有一个强大的反作弊系统,如果你抄了题解,会被查出。你的名字颜色会被变棕(棕名),并且名字右边会有一个 作弊者 标签。棕名后 \mathbf{15} 天会自动解除棕名,重新回到灰名,并会被清空全部 \textbf{AC} 记录(全部记录在列表中均显示为 \textbf{Unaccepted 100})。在棕名之后的 \mathbf{90} 日内,你参与比赛(比赛会在后面介绍)不会获得任何排名。更多关于抄题解及其惩罚,详见 【官方】洛谷社区规则。

(本卷完)