洛谷主题库题解规范(2023 试行版)
前言
随着题解审核工作的不断发展,原有的题解审核及反馈要求已经不再满足当前的需求。
本文将对一系列题解规范相关的内容进行整合,形成一套适用于当前洛谷的完整的规范,帮助用户快速熟悉题解的创作与提交流程。
声明
本规范将作为洛谷主题库题解的审核要求以及反馈要求。规范的最终解释权归管理所有。
图文说明
基本规范
- 请正确使用全角中文标点符号。特别地,句末要有句号。
- 数学公式(运算式、运算符、参与运算的常数、作为变量的字母等)应使用 LaTeX,非数学公式(一般英文单词、题目名、算法名、人名等)不应使用 LaTeX。
- 中文与英文、数字或公式之间以半角空格隔开,但中文标点符号与英文、数字或公式之间不应有空格。
题解内容
- 应只包含题目相关内容,包括但不限于题意简述、题目分析等;不应出现大量无关内容,包括但不限于闲聊、吐槽、加戏、求赞、求管理员通过、「蒟蒻的第一篇题解」等内容。
- 对于题面较长的题目,建议加入题意简述,但不应完整复制题面至题解中。
- 题目分析中必须包含做这一道题目的主要思路,包括但不限于:使用了什么算法或数据结构,以及对于相应算法或者数据结构的具体分析。
- 题目分析应给出完整正确的解法与说明,并对解法中的重要结论进行解释与证明。给出的解法应能够在合理的时间复杂度内通过题目。
- 如果需要引用一些来自他人博客的内容,请确保不会侵犯他人的版权,并且必须使用链接标注来源。
排版
- 应使用 markdown 正确排版。
- 应使用
#, ##, ###, ####
符号表示标题行。标题应对文章结构进行引导;不应滥用标题行表示强调与无意义内容。 - 应使用
-, +, *
来表示无序列表,用1.
来表示有序列表。以下是一个例子:
- QAQ
- QwQ
- QvQ
- QAQ
- QwQ
- QvQ
1. QAQ
2. QwQ
3. QvQ
- QAQ
- QwQ
- QvQ
-
应使用行内代码块表示字符串或代码,如
aabc
。 -
应使用行间代码块引用代码。
-
应使用
[]()
引用链接,如 题解审核及反馈要求([题解审核及反馈要求](https://www.luogu.com.cn/discuss/174934)
)。 -
应使用
![]()
引用图片,如
。
数学公式
- 数学公式(运算式、运算符、参与运算的常数、作为变量的字母等)应使用 LaTeX。同一个数学公式应写在一个 LaTeX 环境内。
- 数学公式中的文本应使用
\text
,字符串应使用\texttt
。如 ($a \text{ is prime}$
),($S = \texttt{aabcd}$
)。 - 公式独立成行时应使用行间公式。以下是一个行间公式的例子:
$$a + b = c$$
- 数学公式中应使用数学语言而非代码语言。
- 赋值语句
a = b;
可以写作 ($a \gets b$
)或 ($b \to a$
)。 - 判定语句应使用 (
$=, \ne, <, \le, >, \ge$
)与艾佛森括号( 当 为真时取值为 , 为假时取值为 )进行描述。 - 整除应使用 (
$\lfloor \frac{a}{b} \rfloor, \lfloor a / b \rfloor, \lfloor a \div b \rfloor$
),不应使用 或 直接表示整除。 - 取模应使用 (
$a \bmod b$
) 或 ($a \equiv b \pmod p$
)。 - 不应出现 等结构体式的写法,如有需要可以使用上下标表示。
- 位运算应使用 (
$\operatorname{and}, \operatorname{or}, \operatorname{xor}$
)。特别地,对于状态压缩 DP 等一类常用位运算实现集合运算的代码,建议在题解中用集合语言直接描述。以下是一个例子:
- 赋值语句
$$dp_{S \cup \{u\}} \gets dp_{S}+w_u$$
- 上下标应使用 (
$a _ {b} ^ {c}$
)进行表示。 - 大数字应使用科学计数法表示,如 。
- 时间复杂度的大 记号中不应带有常数,如有值域、字符集大小等常量,应使用字母进行表示。
- 应正确使用运算符,如 (
$+, -, \pm, \times, \cdot, \div, \le, \ge, \mid$
)。 - 特定的、约定俗成的函数名称应该使用正体,如 (
$\gcd, \max, \min, \log, \det$
)。特别地,对于一些未定义的函数,应使用\operatorname
,如 (\operatorname{lcm}
)。 - 应正确使用大型运算符,如 (
$\sum, \prod, \bigcup, \bigcap$
)。建议在可能引起误解的地方加上括号。 - 应正确使用取模符号。
- 取模运算应使用
\bmod
,如 ($a \bmod b = c$
)。 - 同余符号应使用
\equiv
与\pmod
,如 ($a \equiv c \pmod b$
)。
- 取模运算应使用
- 应正确使用数学结构符号,如 (
$\frac{a}{b}, \sqrt{a}, \overline{a}, \{a\}$
)。 - 应正确使用箭头符号,用 (
$\to, \gets$
)表示赋值,用 ($\Leftarrow, \Rightarrow$
)表示因果关系。 - 省略号应使用 (
$\dots, \cdots, \ldots$
),特别 地,矩阵中其它方向的省略号应使用 ($\vdots, \ddots$
)。 - 波浪线应使用 (
$\sim$
)。 - 连等式应使用
\aligned
环境,分段函数应使用\cases
环境,矩阵应使用\bmatrix
环境。以下是一些例子:
$$\begin{aligned} \sum _ {i = 1} ^ n \sum _ {j = 1} ^ n \gcd(i, j) &= \sum _ {i = 1} ^ n \sum _ {j = 1} ^ n \sum _ {d \mid \gcd(i, j)} \varphi(d) \\ &= \sum _ {d = 1} ^ n \varphi(d) \sum _ {i = 1} ^ n \sum _ {j = 1} ^ n [d \mid \gcd(i, j)] \\ &= \sum _ {d = 1} ^ n \varphi(d) \sum _ {i = 1} ^ n \sum _ {j = 1} ^ n [d \mid i][d \mid j] \\ &= \sum _ {d = 1} ^ n \varphi(d) \left\lfloor \frac{n}{d} \right\rfloor ^ 2 \end{aligned}$$
$$\lvert 2x - 1 \rvert = \begin{cases} 2x - 1 & x > \frac{1}{2} \\ 0 & x = \frac{1}{2} \\ 1 - 2x & x < \frac{1}{2} \end{cases}$$
$$\begin{bmatrix} f_{i + 1} \\ f_i \end{bmatrix} = \begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix} \times \begin{bmatrix} f_i \\ f_{i - 1} \end{bmatrix}$$