洛谷模板题题解规范

站务版

一扶苏一 @ 2025-02-25 16:15:15

经管理组讨论通过,《洛谷模板题题解规范》自公布日起实施。

洛谷模板题题解规范

前言

模板题作为题库中一类具有特殊性质的题目,相较于普通题目,其教学与指导意义更为显著。这类题目往往成为用户学习相关算法与知识的核心参考资料。鉴于此,本文特制定针对模板题题解的进一步规范,旨在更有效地满足用户的学习需求。

模板题的定义

在主题库、入门与面试题库中名称以【模板】开头的题目。

基本规范

  • 文章必须满足洛谷主题库题解规范。
  • 文章必须至少包含如下三部分内容:算法介绍、正确性证明、代码实现。这三部分必须通过标题加以区分,书写于不同的章节中。
  • 文章可以包含部分需要使用相应算法解决的相关例题,但是不宜对例题解法做篇幅过大的阐述(可以使用一两句话简单描述解法)。
  • 文章主体部分应由作者自行完成,不得抄袭。对引用参考资料的部分,应正确标注引用,给出资料来源。

算法介绍

这部分是对算法本身的介绍,需要包括算法主要用于解决什么问题、算法流程等内容。

对于数据结构类(广义,包括图论、字符串等)模板题,最好添加部分图片来示意数据结构在运行中的变化。

对于数学算法类模板题,需要做好相关概念和函数、变量的定义,给出前置知识的简介或学习链接。

这一部分内容应该主要基于算法的具体运行流程,不要涉及过多的抽象化、形式化内容,以简明易懂为目标。

正确性证明

这部分是对算法更深层次的介绍。首先应该证明算法本身的正确性,并证明算法的时间复杂度。如果相关算法有更深刻的本质,或更抽象、更形式化的描述,也可以在这一部分说明。

  • 如果算法本身正确性和复杂度比较显然,这一部分可以略过。
  • 如果这部分证明需要一些远超算法本身难度的过于复杂的内容(比如并查集关于反阿克曼函数复杂度的证明),可以略去证明。

代码实现

这部分应该有文字介绍上文的模板如何应用到模板题上,并给出可以通过模板题的代码。

原则上,鼓励模块化清晰、接口明确的代码。鼓励把相关算法实现成接口明确的函数/类,不鼓励采用面向过程的方法把所有内容都塞在主函数中。

如果相关算法/数据结构在某语言的官方库中(如 C++ 的 STL)中有实现,也应该给出自行实现的算法代码。在此基础上,可以另外给出一份使用官方标准库实现的代码。

注:这里指的是算法本身不应该直接调库。对于算法内部的一些辅助数据结构可以不加说明的直接调库。 例如,堆的模板题应该给出具体实现,而不应该只使用 std::priority_queue;但后缀自动机的模板题里可以直接使用 std::unordered_map 而无需手动实现一个。

代码必须清晰易读,使用合适美观的换行和缩进。但不要求必须是 C++ 语言实现的。


by LionBlaze @ 2025-02-25 16:17:56

qp


by SmokingTurtle @ 2025-02-25 16:18:41

qpzc


by LionBlaze @ 2025-02-25 16:19:18

@一扶苏一 【模板】快速读入算模板吗


by ty_mxzhn @ 2025-02-25 16:19:18

qq


by SkyWave @ 2025-02-25 16:19:18

前排支持


by K8He @ 2025-02-25 16:19:21

我喜欢你


by luogu_gza @ 2025-02-25 16:19:21

前排支持。


by MrPython @ 2025-02-25 16:19:33

支持


by xxgirlxx @ 2025-02-25 16:19:46

@一扶苏一所以如果有一些题解不是使用的该模板题的算法会撤下吗?


by MrPython @ 2025-02-25 16:19:47

@LionBlaze 算。


| 下一页