洛谷生存手册 | 第一卷
前言
最近看到很多新手在讨论区问关于如何使用洛谷的问题。对于老手来说,这样的问题自然是很烦人,于是我开始准备写这样一个指南,来从一个用户的角度介绍洛谷的各种功能。
本生存手册非官方版本,我会在合适的位置给出官方文档的链接以供参考。
编者小编:
贡献者(如有疏漏,烦请提醒;按首次贡献时间顺序排序):
本文采用 CC BY-NC-ND 4.0 许可证进行许可。
善意的提醒:如您需要转载本文,请点击上述许可证的链接,认真阅读上述许可证。一个并不严禁的概括如下,可供参考(但不能起到替代作用!)。
若转载本文,您必须保证
- 署名:在明显位置标注上述编者姓名(即洛谷用户名),并给出原文链接。
- 非商业性:若要转载本文,不可将转载版本用于商业用途,这意味着您不可以设置诸如打赏等
恰烂钱功能。 - 不可修改:请勿随意修改转载版本。如您对本文有修改建议,烦请直接在这里贡献。
贡献
我计划为本手册在
我的能力有限,有些地方自己也不太懂/没试过。我会在这些地方标注 (需要补充) 。我诚邀有了解这些功能的大佬补充。
定位
我尽可能使本手册通俗易懂,因此您只要有小学语文水平应该就可以读懂。
导航栏
因为写的比较长,长文编辑起来会比较卡,因此我决定分卷进行。这是第一卷。本卷主要介绍以下内容。
- Part 1.注册账号
- Part 2.开始刷题
全文导航详见 洛谷生存手册 | 导航。
Part 1.注册账号
目标:
- 注册一个账号,开始使用洛谷!
- 进行一次登录、登出、锁定、解锁。
访问 https://www.luogu.com.cn/ ,进入洛谷主页(如图
更多关于洛谷,详见 【官方】关于洛谷。
点击右上角 注册 按钮,进入注册页面(如图
您可以选择通过电子邮件注册或者通过手机号码注册。此处显示的是通过电子邮件注册的方式。如需通过手机号码注册,请点击 手机号码。
注意!不能使用十分钟邮箱注册!否则会被洛谷封号。
依次填入各项信息。建议您再点击 注册 按钮下方的 《洛谷用户协议》,认真阅读一下。然后点击 注册 按钮。(链接:【官方】洛谷用户协议)
(需要补充) 注册成功后,回到主页。这时你看到的主页会和原先稍有不同(图
如无特殊情况,以后你在这个浏览器上访问洛谷都会自动登录。如果您在别的设备(或别的浏览器上)访问洛谷,则需要人工登录。
注意!正因为有自动登录,因此如果您在非您本人的设备(例如机房电脑)上使用账号,强烈建议您使用完之后登出(登出的方法见下方)。如果您在一台设备上看到有非您本人的账号登录,应该除帮他登出外不要去乱动他的账号,这是很不道德的行为。
在图 登录 按钮,进入登录页面(图
依次填入您的用户名,密码,以及右图显示的验证码,然后点击 登录 按钮,即可登录。登录后会跳转到图
在主页上,把鼠标悬停在右上角自己的头像上方,会出现一个菜单(图
点击下方的 登出 按钮可以登出。登出后跳转至图
注意!近期洛谷由于服务器原因,有可能会自动登出你的账号,遇到这种情况,不需要大惊小怪,重新登录进去就可以了。
如果您只是临时有事要离开一会,可以选择锁定你的账号,锁定后仅需要输入密码即可解锁。点击 锁定 按钮即可锁定,锁定后会出现图
到此为止,您就已经注册了一个账号,并且尝试了各一次登录、登出、锁定、解锁。恭喜您完成了本节目标!接下来,你就可以刷题了QwQ
Part 2.开始刷题
目标:
- 进入题目列表。
- 尝试查找题目。
- 学会阅读题目页面。
- 使用 在线
\textbf{IDE} 编辑一次代码。 - 提交一次题目。
- 学会阅读评测记录。
- 使用提交记录查找你过去的提交。
- 使用个人设置设定自己的做题隐私。
- 使用题解功能学习好的解法。
回到主页(如图 题库 (如图
接下来,你会进入题目列表(如图
取出其中两行,详细说一下(如图
- 最左边的一列是当前这道题的状态。
- 如果你通过(
\text{AC} )了这道题,则这一栏会显示绿色的对勾。(例如图中的\text{P1002} ) - 如果你提交过但没有通过这道题(
\text{Unaccepted} ),则这一栏会显示红色的叉。 - 如果你没有提交过这道题,则这一栏会显示黑色的横杠。(例如图中的
\text{P1003} ) - 以上列表是我的账号目前的,但由于你刚注册,此时应该没有通过过任意一道题,所以所有题目的第一栏都会是横杠。
- 如果你通过(
- 第二列显示的是题号。洛谷主题库的题目题号全部有前缀
\texttt{P} ,后面紧跟四位数字的题号,题号自1000 开始。此外,洛谷还有一些其它在线评测网站的题目,例如\text{CodeForces(CF)} ,\text{SPOJ(SP)} ,\text{UVaOJ(UVA)} ,\text{AtCoder(AT)} ,它们的题目编号前缀是括号里所示的两位或三位字母,后面的部分则与它们本站的编号一致。 - 第三列显示的是题目名称。点击题目名称可以进入相应的题目。
- 第四列是该题目的标签。洛谷使用标签对题目进行分类。标签可以是算法标签(红色)或者来源标签(蓝色)。现在这列显示的是来源标签,即意味着
\text{P1002} 属于2002 年的\text{NOIP} 普及组。如果你想显示来源标签,请点击这一列上方的显示来源。 - 第五列是题目难度。洛谷大部分题目都按照难度分好了类,不同的难度用不同的颜色表示,以示区分。以下是目前的难度分类。
\text{OIer} 口中的红题,橙题等即出自这里,例如红题表示入门难度的题。- 红色:入门
- 橙色:普及
- - 黄色:普及/提高
- - 绿色:普及
+ /提高 - 蓝色:提高
+ /省选- - 紫色:省选/
\text{NOI-} - 黑色:
\text{NOI/NOI+/CTSC}
- 最后一列用图表的方式反映了这道题目的
\textbf{AC} 率。其中整个图表的长度代表这道题目总的提交次数,而蓝色部分的长度则代表这些提交中通过的个数。
洛谷的题目非常多(主题库就有近
在这一排按钮中,蓝色按钮代表了当前页的编号。你可以进行如下操作。
- 点击非蓝色的数字按钮,可以跳到相应编号的页。
- 点击最左边的按钮,可以跳到第
1 页。 - 点击从左到右第二个按钮,可以跳到当前页的前一页。(如果当前已经是第
1 页那么此按钮无效) - 点击从右到左第二个按钮,可以跳到当前页的后一页。(如果当前已经是最后一页那么此按钮无效)
- 点击最右边的按钮,可以跳到最后一页。
但是,目前洛谷不支持直接跳转到任意页码。因此,如果你需要跳转到某一离当前页很远的页码,只能自己更改
回到图 https://www.luogu.com.cn/problem/list 或 https://www.luogu.com.cn/problem/list?page=1)。
如果是前一种,请在后面添上 ?page=<你要去的页的编号,两边尖括号不用加>,如果是后一种,请直接把 1 改成你要去的页的编号即可。改完之后,按下 Enter 就可以了。
更多的时候我们是用查找题目功能来找题。进入图 查找题目 部分的输入框中输入你要找的题目的标题或题号,然后点击 搜索 按钮即可。如图 格雷码 。
如果你想直接搜索题目内容,需要打开旁边的 搜索题目内容 勾选框。
当然,洛谷还提供了更高级的搜索功能。点击下方的 显示高级搜索选项 即可看到更多的搜索选项(图
你可以指定 所属题库,题目难度,算法标签,来源,时间,地区 来搜索。
下面我们一起来看一道试机题目:P1001 A+B Problem。
在图 A+B Problem 即可进入该题目(图
题目主栏大致分为如下几部分。
- 题目背景:是这道题目的背景信息(可有可无),有可能是一个故事。这一段内容一般不影响做题,但如果你有时间的话还是可以读一下。
- 题目描述:这是每道题必有的部分,它描述了这个题的题意。
- 题意翻译:对于一些外语题目,会有这一栏。
- 输入输出格式:这也是必有的部分,它告诉了你你的程序该如何读取给定的数据,以及如何给出计算出的结果。
- 样例:一般来说,每道题都会有一个样例。把样例输入输入到你的程序中,你的程序应能给出与样例输出相同的结果(否则就说明你的程序错了,或,极少情况下,样例错了)。样例一般很小(有些正式比赛题会给大样例),手算也可以搞定,这样就减少了你通过样例调试程序的难度。
- 说明与提示:这一部分一般会放一些样例解释、数据规模与约定什么的。尤其需要注意数据规模,它决定了你该用什么变量类型来存储数据,还决定了你该用什么复杂度的算法来解决此问题。
如果你看到有的题目上方有 征集翻译 的文字,你可以提交翻译,你在提交翻译前应仔细阅读 【官方】翻译提交注意事项。两次以上提交不符合翻译提交注意事项中所要求的翻译的用户可能会被禁言。
如果您看到有题目不符合 【官方】洛谷主题库题目规范,请在 【官方】洛谷主题库试题提供及反馈帖 下方说明,而不是在题目讨论版发帖说明。
题目侧边栏大致分为以下几部分:
- 题目基本信息:包含了题目提供者,题目难度(难度分级刚刚提到过),以及历史分数(你在这道题目的所有提交中得到的最高得分,对于部分非主题库题目,不会显示具体得分而只会显示是否通过,
\text{AC ( Accepted ) } 即为通过)。 - 提交记录:点击
提交记录按钮即可查看这道题目最近400 次提交的状态。 - 题解:点击
查看题解按钮即可查看本题的题解。 - 标签:这道题目的算法标签(默认不显示)以及来源标签(默认显示)。
- 相关讨论:这道题目的讨论版下最近五条讨论以及进入这道题目讨论版的链接,默认不显示。
- 推荐题目:与这道题目相关的五道题目,默认不显示。
- 洛谷推荐:一个类似广告的东西,但宣传的都是站内的内容,没有其它无良广告,默认显示,可以点击右上角
关闭将其关闭。
对于默认不显示的内容,需要点击 查看 来显示。
在认真读题之后,你就可以开始写程序了。你可以在本机上写代码和调试,也可以利用洛谷的在线
在任意洛谷页面点击左侧边栏的 应用 会出现一个菜单(图
点击其中的 在线 IDE,进入在线
在 代码 区域输入代码,然后在 输入 区域填写输入内容,随后点击 运行 即可看到在 输出 区域出现了结果。
如果你的程序在运行时出现了错误(运行 按钮的旁边显示 运行时错误。
如果你的程序编译错误(运行 按钮的旁边显示 编译失败,并在 输出 区域显示编译信息。
当然,你还可以在右上角选择语言,或者选择是否开
洛谷在线
总而言之,调试好程序后,就可以提交了。回到图 提交答案 按钮,点击它,进入提交页面(图
按照提交方式,洛谷的题目可分为两类,提交代码和提交答案。大部分题目采用传统方式提交。
提交代码也就是把你的代码提交上去。在图 提交评测 按钮即可。
提交答案是一种新颖的方式,例如
对于提交答案题,你还可以直接提交一个包含答案的文本文件。将每个测试点的答案按照题目所要求的输出格式写在一个文本文档(.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 创建压缩文件的话,后者是默认选项,千万记得更改。
然后,进入图 提交文件,看到提交文件页面(图
点击 选择文件 按钮,然后选择刚刚建好的压缩包。
随后页面会变成这样(图
点击红色的 提交评测 按钮即可。
提交评测后,评测机可能会有一定的时间延迟,这段时间内所有测试点都会显示为
然后,评测机会对若干个测试数据运行你的程序,并将你的程序对每个数据的输出结果与答案文件比较(比较方式为全文比较忽略行末空格缩进)。以下是几个评测状态。
- 若比较相同则判为通过(
\text{Accepted , AC} ),表现为绿色。 - 若比较不相同则判为错误(
\text{Wrong Answer , WA} ),表现为红色。 - 若你的程序无法编译通过,则判为编译错误(
\text{Compile Error , CE} ),表现为黄色。 - 若你的程序运行时发生错误,则判为运行时错误(
\text{Runtime Error , RE} ),表现为紫色。 - 若你的程序运行时间超出限制,则判为时间超限(
\text{Time Limit Exceeded , TLE} ),表现为深蓝色。 - 若你的程序运行占用的内存空间超出限制,则判为空间超限(
\text{Memory Limit Exceeded , MLE} ),表现为深蓝色。 - 若你的程序输出超出限制,则判为输出超限(
\text{Output Limit Exceeded , OLE} ),表现为深蓝色。 - 若评测时发生其它错误,则判为未知错误(
\text{Unknown Error , UKE} ),表现为深蓝色。(这种情况有可能是你的问题,也有可能是评测机的问题)。
关于常见错误情况的评测结果以及如何应对,详见 【官方】我的程序评测不通过怎么办?
提交后,会跳转到评测结果页面。如果是编译错误,则根本不会运行所有测试点,而是会显示编译信息(图
其中会显示详细的编译信息,从中你可以看出发生了什么错误。
如果你要查看本次提交的源代码,可以点击 源代码。
在侧边栏中会显示本次评测的一些信息。包括
- 提交人,点击用户名即可进入该用户主页。
- 所属题目,点击题目名称即可进入该题目页面。
- 评测状态,这里除了
\text{AC} 以及\text{CE} 之外的全部状态都被概括为\text{Unaccepted} 。 - 提交时间。
若编译通过,则继续评测全部测试点,等一会(可能需要手动刷新页面)就会出现评测结果,例如图
其中
洛谷采用了方块的形式来表示每个测试点,比较生动形象。每个测试点所代表的方块里有以下信息。
- 测试点编号,为
#x的形式。 - 测试点状态,即上面所说到的各种除
\text{CE} 以外的状态,如果是在评测中则会显示为转圈的图标。 - 这个测试点所耗费的时间
/ 空间,单位为\text{ms} 及\text{KB} 。
注意:请不要提交恶意卡评测的代码,这样你会被众人所鄙视,也会被管理员给予惩罚。
注意:如果一直在
注意:近期洛谷评测机性能有波动,因此甚至可能会出现同一份代码两次提交结果不一样的情况。如果你确信自己代码是正确的,但莫名超时,可以多提交几次。
在侧边栏会显示评测记录的状态、所属题目、评测分数、提交时间、提交人等,不再详细说明。
如您想查看此题过去自己的提交记录,请回到图 历史分数 一栏中的分数(如您没有提交,则这里会显示 无),即可进入评测记录页面(图
评测记录页面会以类似题目列表的形式给出每条评测记录的简略信息。每条记录自左向右分别是
- 提交人及提交时间,点击用户名即可进入该用户空间。
注意:如果你对不同的名字颜色有疑惑,请暂时放下这个疑惑,在本文的后面会说的。请万万不要在洛谷社区发帖问! - 评测状态,大致分为
\text{Accepted} ,\text{Unaccepted} ,\text{Judging} ,\text{Waiting} 几种状态,分别以不同颜色表示,具体含义可参考上面评测记录部分的介绍。点击状态即可进入相应的,类似图18, 19, 20 的提交记录页面。 - 题目名称,同样包含题号和题名,点击题目名称可进入类似图
12 的题目页面。 - 其它信息,自左向右分别是
- 评测用时,以
\text{ms, s} 为单位。
注意:这里的评测用时在多测试点题目中与每个测试点的用时是有区别的!这里的评测用时指的是总共评测所用的时间,而不是最慢的测试点的执行时间。 - 评测占用的空间,以
\text{B, KB, MB} 为单位。 - 代码长度,以
\text{B, KB} 为单位。
注意:代码长度并不是评测占用的空间!评测占用的空间是指程序运行时使用的内存大小,而不是代码长度! - 语言,即你提交时选定的语言。
- 评测用时,以
如果你想查看本题的最近 提交记录,即可进入一个类似图
如果你想查看本人的评测记录,请在如图 记录,即可进入类似图
其实,这个评测记录页面是很通用的,它并不只能找上面说的几种评测记录。
在图 查找记录 部分(图
你需要输入题目编号和用户名(或 搜索 即可(这种搜索方法类似上面说过的题目列表中的搜索题目)。
当然,你还可以在下方 筛选选项 中选择你要搜索的记录的状态。
也许你会在类似图 匿名用户,且状态显示为
事实上,洛谷用户可以决定自己提交的代码以及记录信息是否可被他人看见。调出图 个人设置,可进入个人设置页面(图
点击 使用偏好,看到使用偏好选项卡(图
在 做题记录隐私 一栏中有三个选项,含义如下。
- 代码公开计划,为默认选项。选择此选项后,你提交的任何代码都将可被该题得到
60 分及以上的用户看到。
注意:退出代码公开计划后重新加入,则\mathbf{30} 天内不得再次退出。 - 不公开代码。选择此选项后,你提交的代码只可被你所在的团队的管理员以及洛谷管理员看到。
- 完全隐私保护(完隐)。选择此选项后,你提交的记录不会被任何用户看见,包括你所在的团队的管理员。上面提到的
匿名用户就是开了完全隐私保护的用户。
有时如果一道题目实在想不出来,也没有关系。洛谷提供了题解区域,允许做出此题的用户发表题解,讲解自己做题的思路。通过题解,你可以学到做此题的方法。
在图 查看题解,即可进入题解页面(图
在主栏中即为全部题解。有的题目题解较多,会分页显示,同样需要按照类似题目列表的方式翻页。
初始时仅第一篇题解展开,其它题解均默认收起,可点击 展开全文 将收起的题解展开。那么,展开之后如何收起呢?在每篇题解的下面,都有一个小条条(图
在这个小条条的右边,点击 收起,即可收起这篇题解。
如果你觉得一篇题解很不错,可以在图 赞 符号,就点赞了此题解。成功点赞后 赞 符号会变蓝。刷新页面之后,赞符号右边的赞数也会加一。
如果你觉得这篇题解写得不好,可以点击 赞 符号右边的 踩 符号,就踩了这篇题解,踩之后赞数会减一。
如果你希望和题解的作者交流,可以点击文章下方图 xxx条评论 按钮。会弹出该题解的评论区(图
在下方的 发表评论 输入框中输入你要写的评论内容,然后点击 发布 按钮即可发布。发言需遵守 【官方】洛谷社区规则。
洛谷的题解实际上就是用户的博客文章,因此它的 赞、踩与评论区 均为博客的 赞、踩与评论区。博客 是一种类似于专栏的东西,每个用户都可以开通自己的博客,并在里面写自己的文章。当然,你也可以提交自己的题解。
注意:洛谷对题解的要求十分严格,多次发布不合要求的题解,是会被处以惩罚的(详见 【官方】题解审核及反馈要求)。而且,大部分题目已经有足够多,足够全面的题解,因此,我不建议初学者发布题解。
博客是很个性化的,有的博客会比题解页面更美观,因此,如果你想在题解作者的博客里看这篇题解,请点击题解右上角的 在 Ta 的博客查看。
详尽的对博客的介绍,见后文。
强烈注意:题解仅供你学习思路,有的题解给出了代码,也仅供你参考,而不是直接复制该代码然后提交(抄题解,作弊者 标签。棕名后
(本卷完)