Unverified Commit 331e3a18 authored by Xeonacid's avatar Xeonacid Committed by GitHub
Browse files

Update htc.md

parent 38fb027f
Loading
Loading
Loading
Loading
+27 −27
Original line number Diff line number Diff line
@@ -15,8 +15,8 @@

## 文档存储的格式

1.   **文件名请务必都小写,以 `-` 分割,如 `file-name`** 
2.  请务必确保您的文档中引用的 **外链** 图片已经全部转存到了 **本库内** 对应的 `images` 文件夹中(防止触发某些网站的防盗链),建议处理成 `MD 文档名称 + 编号` 的形式(可参考已有文档中图片的处理方式)(即格式为 `![](./images/xx.jpg)` )。
1.   **文件名请务必都小写,以 `-` 分割,如 `file-name`** 
2.  请务必确保您的文档中引用的 **外链** 图片已经全部转存到了 **本库内** 对应的 `images` 文件夹中(防止触发某些网站的防盗链),建议处理成 `MD 文档名称 + 编号` 的形式(可参考已有文档中图片的处理方式)(即格式为 `![](./images/xx.jpg)` )。
3.  请确保您的文档中的引用链接的稳定性, **不推荐** 引用 **自建** 服务(如 OJ)中的资源(如题目)

## 文档的合理性
@@ -25,8 +25,8 @@

-   由浅入深,内容的难度应该具有渐进性。
-   逻辑性,对于每类内容的撰写应该尽量包含以下的内容:
    -   原理,说明该内容对应的原理
    -   例子,给出 1 ~ 2 个典型的例子
    -   原理,说明该内容对应的原理
    -   例子,给出 1 ~ 2 个典型的例子
    -   题目,在该标题下, **只需要给出题目名字、题目链接**

除现有内容质量较低的情况外,建议尽量从 **补充** 的角度来做贡献,而非采取直接覆盖的方式。如果拿不准主意,可以加群讨论细节。
@@ -42,23 +42,23 @@
1.  不要在页面中添加 `<h1>` 或者 `# 标题`
2.   `## 简介` 标题要空一格(英文半角空格),也不要写成 `## 简介 ##`
3.  列表:
    1.  列表前要有空行,新开一段
    1.  列表前要有空行,新开一段
    2.   `1. 例子` 点号后要有空格。
4.  行间公式前后各要有一行空行,否则会被当做是行内公式。
5.  伪代码请使用 ```` ```text```` ,直接使用 ```` ``` ```` 可能导致内容被错误地缩进。
6.  涉及到目录的更改的时候:
    1.  需要改动 mkdocs.yml
    2.  请注意如果影响到作者信息统计,麻烦更新[author 字段](https://oi-wiki.org/intro/faq/#_15)(不改动目录的时候不需要维护 author 字段
    1.  需要改动 `mkdocs.yml`
    2.  请注意如果影响到作者信息统计,麻烦更新[author 字段](https://oi-wiki.org/intro/faq/#_15)(不改动目录的时候不需要维护 author 字段)
    3.  需要在项目内搜索一下是否有内链需要更新。
7.  使用 `???``!!!` 开头的 Details 语法时,需要注意:开头至少有 4 个空格的行才会被当做是在 Details 语法的文本框中。
7.  使用 `???``!!!` 开头的 Details 语法时,需要注意:开头至少有个空格的行才会被当做是在 Details 语法的文本框中。

### 标点符号的使用

1.  请在每句话的末尾添加 **句号** 
2.  请正确使用标点符号,注意区分 **全角** 符号与 **半角** 符号的使用(汉语请使用全角符号,英语请使用半角符号)
3.  注意 **逗号** 的使用(应当使用顿号却使用了逗号等等)
4.  注意 **括号** 的位置
5.  请特别注意,我们通常习惯使用 `「` ”与“ `」` 来提高 **中文引号** 的辨识度,同时也常用 **分号** 来表示列表环境中各复句之间的关系。
1.  请在每句话的末尾添加 **句号** 
2.  请正确使用标点符号,注意区分 **全角** 符号与 **半角** 符号的使用(汉语请使用全角符号,英语请使用半角符号)
3.  注意 **逗号** 的使用(应当使用顿号却使用了逗号等等)
4.  注意 **括号** 的位置
5.  请特别注意,我们通常习惯使用 `「` ”与“ `」` 来提高 **中文引号** 的辨识度,同时也常用 **分号** 来表示列表环境中各复句之间的关系。

请参考下面的例子更好地使用标点符号:

@@ -95,9 +95,9 @@ LaTeX 作为公式排版的首选,我们应当正确地使用它。因此对

4.  请注意,不要将任何代码的表示方法使用 LaTeX 公式。例如,使用 `$=$` 而不是 `$==$` (如 $a=b$ ,而不是 $a==b$ )、使用 `` `a<<1` `` 或者 `$a\times 2$` 而不是 `$a<<1$` 、使用 `$a\bmod b$` 代替 `$a\%b$` (如 $a\bmod b$ ,而不是 $a\%b$ )等。

5.  为了统一,复杂度分析时大 $O$ 记号请直接使用 `$O()$` 而不要 `$\mathcal O()$`
5.  公式中不要使用多中括号(即 C++ 高维数组的表示方式)而多使用下标。即 $a_{i,j,k}$ 而不是 $a[i][j][k]$ 。在公式中下标较复杂的情况下建议改用多元函数( $f(i,j,k)$ )或内联代码格式。对于一元简单函数使用 `$f_i$``$f(i)$``$f[i]$` 均可

6.  公式中尽量避免中括号而多使用下标。即 $a_{i,j,k}$ 而不是 $a[i][j][k]$ 。在公式中下标较复杂的情况下建议改用多元函数( $f(i,j,k)$ )或内联代码格式
6.  为了统一,复杂度分析时大 $O$ 记号请直接使用 `$O()$` 而不要 `$\mathcal O()$` 

7.  请不要滥用 LaTeX 公式。这不仅会造成页面加载缓慢(因为 MathJax 的效率低是出了名的),同时也会导致页面的排版混乱。我们通常使用 LaTeX 公式字体表示变量名称。我们的建议是,如非必要,尽量减少公式与普通正文字体的 **大量** 混合使用,如非必要,尽量不要使用公式,如:

@@ -135,7 +135,7 @@ LaTeX 作为公式排版的首选,我们应当正确地使用它。因此对

4.  所有用作序号的数字建议使用中文,如:

    -   数列的第一项
    -   数列的第一项
    -   输入文件的第一行。

5.  我们建议使用主题扩展的 `???+note` 格式来描述题面。具体格式如下:
@@ -144,25 +144,25 @@ LaTeX 作为公式排版的首选,我们应当正确地使用它。因此对
    ???+note "标题"
    	内容
    	多行内容
    ```

    ??? note "标题"
        内容
        多行内容
    ```

    两种格式的区别是,带 `+` 的会默认保持展开,而不带 `+` 的会默认保折叠。效果可以参考图例的例 7。
    两种格式的区别是,带 `+` 的会默认保持展开,而不带 `+` 的会默认保折叠。效果可以参考图例的例 7。

如果对 mkdocs-material(我们使用的这个主题)还有什么问题,还可以查阅[MkDocs 使用说明](https://github.com/ctf-wiki/ctf-wiki/wiki/Mkdocs-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E)和[cyent 的笔记](https://cyent.github.io/markdown-with-mkdocs-material/),前者介绍了 mkdocs-material 主题的插件使用方式,而后者介绍了 markdown 传统语法和 mkdocs-material 支持的扩展语法。
如果对 mkdocs-material(我们使用的这个主题)还有什么问题,还可以查阅[MkDocs 使用说明](https://github.com/ctf-wiki/ctf-wiki/wiki/Mkdocs-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E)和[cyent 的笔记](https://cyent.github.io/markdown-with-mkdocs-material/),前者介绍了 mkdocs-material 主题的插件使用方式,而后者介绍了 Markdown 传统语法和 mkdocs-material 支持的扩展语法。

## 图解

可能上述要求把握起来有些困难,接下来我们给出一些图片来具体分析哪种格式应该使用,哪种不该使用
可能上述要求把握起来有些困难,接下来我们给出一些图片来具体分析哪种格式应该使用,哪种不该使用

### 例 1

![](./images/htc-1.png)

将复杂的 LaTeX 公式使用行间格式,可以使得页面错落有致。但 OI Wiki 作为一个以中文为主体的站点,我们希望大部分纲领性的信息(如标题)尽量使用中文(除英文专有名词)。
将复杂的 LaTeX 公式使用行间格式,可以使得页面错落有致。但 **OI Wiki** 作为一个以中文为主体的站点,我们希望大部分纲领性的信息(如标题)尽量使用中文(除英文专有名词)。

### 例 2

@@ -174,13 +174,13 @@ LaTeX 作为公式排版的首选,我们应当正确地使用它。因此对

![](./images/htc-4.png)

一般情况下,我们建议将引用的资料在页面末位罗列。同时一定要避免使用 LaTeX 公式表达代码,上图中两个中括号就是不规范的写法。我们建议使用 `dp(i,j)` 或者 `dp_{i,j}` 。 `l[j]` 同理。
一般情况下,我们建议将引用的资料在页面末位罗列。同时一定要避免使用 LaTeX 公式表达代码,上图中两个中括号就是不规范的写法。我们建议使用 `dp(i,j)` 或者 `dp_{i,j}` 。

### 例 4

![](./images/htc-5.png)

注意我们描述 **乘法** 的时侯一般使用 `\times` 或者 `\cdot` ,特殊情况(如卷积)下会使用 `*` (也可以写成 `\ast` )。标题是简洁的词组,但我们不希望正文部分由词组拼凑而成。上图中“两个要素”,建议更改为“动态规划的原理具有以下两个要素”,上下文保持连贯。可取的地方是,适当使用 **有序** 列表可以更有条理地表述内容,同时注意,在使用列表的时侯,每一项如果是一个长句,需要在末位添加 **标点符号** 。通常是添加分号,在最后一项末位添加句号。
注意我们描述 **乘法** 的时侯一般使用 `\times` 或者 `\cdot` ,特殊情况(如卷积)下会使用 `*` (也可以写成 `\ast` )。标题是简洁的词组,但我们不希望正文部分由词组拼凑而成。上图中“两个要素”,建议更改为“动态规划的原理具有以下两个要素”,上下文保持连贯。可取的地方是,适当使用 **有序** 列表可以更有条理地表述内容,同时注意,在使用列表的时侯,每一项如果是一句,需要在末位添加 **标点符号** 。通常是添加分号,在最后一项末位添加句号。

### 例 5

@@ -198,7 +198,7 @@ LaTeX 作为公式排版的首选,我们应当正确地使用它。因此对

![](./images/htc-8.png)

使用 mkdocs 扩展语法,让例题题面与算法描述区分开。将代码折叠,可以让文章更紧凑(毕竟看 Wiki 的大多数是了解思路,除了模板代码需要阅读外,习题的代码大多可以折叠)。在描述函数操作时,使用行内代码和 LaTeX 公式都是不错的选择。
使用 MkDocs 扩展语法,让例题题面与算法描述区分开。将代码折叠,可以让文章更紧凑(毕竟看 Wiki 的大多数是了解思路,除了模板代码需要阅读外,习题的代码大多可以折叠)。在描述函数操作时,使用行内代码和 LaTeX 公式都是不错的选择。

### 例 8