第 1 章 · 01 OI Wiki 是什么与这份地图的定位


文档摘要

第 1 章 · 01 OI Wiki 是什么与这份地图的定位 本节定位:总览级,对应 OI Wiki 项目本身 + 全站。难度:入门导读。前置依赖:无。 ⚠️ 注意:这份地图的角色是"导航+增量",不是另一份教程。如果你把它当成 Wiki 的替代品来读,就本末倒置了——它必须和 OI Wiki 一起用。 知识地图 OI Wiki 是什么 OI Wiki(Olympiad in Informatics Wiki)是一个致力于成为免费、开放的编程竞赛知识整合站点的中文知识库,由社区共建。它面向信息学奥林匹克竞赛(NOI 系列)、ICPC/CCPC 等算法竞赛的学习者,目标是把分散在博客、题解、讲义里的算法知识整合成一份系统、准确、中文的参考资料。

第 1 章 · 01 OI Wiki 是什么与这份地图的定位

本节定位:总览级,对应 OI Wiki 项目本身 + docs/ 全站。难度:入门导读。前置依赖:无。

⚠️ 注意:这份地图的角色是"导航+增量",不是另一份教程。如果你把它当成 Wiki 的替代品来读,就本末倒置了——它必须和 OI Wiki 一起用。

知识地图

OI Wiki 是什么

OI Wiki(Olympiad in Informatics Wiki)是一个致力于成为免费、开放的编程竞赛知识整合站点的中文知识库,由社区共建。它面向信息学奥林匹克竞赛(NOI 系列)、ICPC/CCPC 等算法竞赛的学习者,目标是把分散在博客、题解、讲义里的算法知识整合成一份系统、准确、中文的参考资料。

项目用 MkDocs + 自定义 Material 主题构建,MathJax 在服务端预渲染公式,CI 同时产出网页版和 PDF 版(xelatex 与 Typst 两套)。

它的规模与质量

数字本身就能说明问题:

  • 465 篇 Markdown,覆盖算法竞赛几乎全部主流知识点。
  • 641 张图片,以 SVG 矢量图为主,缩放不失真,适合教学。
  • 11.8 万行内容,平均每篇约 250 行,深度足够。
  • 455 个代码文件(C++ 399 个 + Python 50 个),代码跨平台编译测试。
  • 13 大类知识分类:intro / contest / tools / lang / basic / search / dp / string / math / ds / graph / geometry / misc / topic

质量保障靠多重 CI,这是 Wiki 区别于普通博客的关键:

  • remark lint 格式校验:Markdown 风格统一(标题层级、列表缩进、代码块语言标注)。
  • 字符校验:全角标点规范(中文用全角标点,代码用半角),保证排版整洁。
  • 链接校验:无死链,所有内部跳转有效。
  • C++ 跨平台编译测试:455 个代码文件在 Windows(MinGW)/Linux(g++)/macOS(Clang)三平台都能编过。

💡 学习提示:这意味着 Wiki 的代码片段你可以直接复制使用,不用担心平台问题。看到 docs/xxx.md 里的 C++ 代码,粘贴到任何主流环境都能跑。这是省去你大量调试时间的"隐形福利"。

mkdocs.yml 的导航树

OI Wiki 仓库根目录的 mkdocs.yml 里有完整的 nav 导航树,就是这 13 大类的层级组织。读者可以直接打开 mkdocs.yml 看到整站结构,也可以在网页版左侧目录栏浏览。这份地图第 1 章 02 节会专门讲这棵导航树怎么用。

这份地图做的三件事

Wiki 已经足够好,为什么还要这份地图?因为 Wiki 是扁平的——465 篇按主题并列,新读者面对海量页面容易迷路,不知道先学什么、哪里是难点、哪些是前置。这份地图只做 Wiki 本身缺乏的三件事:

💡 第一,分级学习路径。把 Wiki 已有页面按"入门→进阶→省选→IOI"四级难度,串成带先后依赖、带难度标注的课程。告诉你"先学什么、后学什么、哪里是前置"。

💡 第二,难点慢节奏精讲。Wiki 多数页面是"知识条目式"(简洁但快)。对真正难的概念(线段树懒标记、网络流 Dinic、SAM、FFT 等),这份地图做更慢节奏、更多推导的增量讲解,作为 Wiki 页面的配套讲义。

💡 第三,实战串联。Wiki 偏理论。这份地图围绕经典 OJ 题目(洛谷/Codeforces)做"用 Wiki 哪些知识解这道题"的串联,把抽象模板落到具体题目。

这三件事正是 Wiki 这种"知识库"形态天然不擅长的——知识库追求"全"和"准",而课程追求"序"和"通"。地图补的就是后两者。

为什么不重写 Wiki

⚠️ 注意:这是最常被误解的一点。OI Wiki 本身已经是成熟的、纯中文的、面向学习者的教程型知识库——它不需要被"汉化"或"补教程"。重写它的内容是重复造轮子,既浪费精力,又会引入不一致(两份内容谁对?)。

因此这份地图绝对不重写 OI Wiki 的内容。它做的是:

你 → 这份学习地图(分级路径 + 难点精讲 + 实战串联) │ 引用 ▼ OI Wiki docs/ 465 篇(知识本身)

本地图与 Wiki 的关系

  • 导航:每节都标注"对应 OI Wiki 哪些 docs/ 页面",用稳定的相对路径引用,如 docs/ds/seg.md
  • 增量:只在难点节做慢节奏精讲,补充 Wiki 没展开的推导和示意。
  • 不复制图片:Wiki 的 641 张图不搬过来,难点精讲按需用 Mermaid 重绘关键示意,或引用其 docs/xxx/images/ 路径。

本质上,这是导航增强 + 增量讲解,在 Wiki 稳定的 docs/ 页面之上构建教学叙事。

怎么判断地图读对了

💡 学习提示:用以下三个信号自检,判断这份地图对你是"导航+增量"而非"误读":

  1. 你能说出"这一节对应 Wiki 哪些页面":读完每节,你应该知道去 Wiki 哪个 docs/ 路径看完整内容。如果读完地图反而不知道 Wiki 在哪,说明你把地图当 Wiki 读,丢了导航作用。
  2. 难点节能跟上推导:★ 节读完,你应该理解"为什么难"和"慢节奏推导",而不仅是记结论。比如线段树节读完,你能说清懒标记为什么要在进儿子前 pushdown。
  3. 配套刷题不慌:地图提到的模板题(如 P3372 线段树、P3376 网络最大流),你能结合 Wiki 页面代码写出。如果看完地图和 Wiki 都写不出,说明练习量不够——回到本地图"结合刷题"那条建议。

如果三个信号都满足,恭喜你用对了。

学习建议

  1. 先读总纲:教程/教程总纲.md 是这份地图的目录和阅读约定,5 分钟读完,建立全景。
  2. 认准路径引用:地图里所有 docs/xxx/yyy.md 都是 OI Wiki 的页面,看到就打开 Wiki 对照读。
  3. 不要只读地图:地图是导读,知识在 Wiki。精讲节读完地图的慢节奏讲解后,务必回 Wiki 看完整页面(代码、图示、证明)。
  4. 按级推进:从第 2 章入门开始,顺着章节顺序,不要跳级。每章开头都标注前置依赖。
  5. 难度标注:★ 标记的节是难点,做了慢节奏精讲;无 ★ 的节是导读串联,快速过一遍建立全景即可。
  6. 配合刷题:地图和 Wiki 都是"知识来源",但算法竞赛是技能。每学一个知识点,马上到洛谷/Codeforces 配套刷 5-10 道题。看懂和会写之间隔着大量练习。
  7. 接受反复:同一个难点(如线段树懒标记)可能要读 2-3 遍才能内化。第一遍建立印象,刷题卡住时回头读第二遍,比赛前再扫第三遍。这很正常。

💡 学习提示:这份地图的篇幅不长(每节 130-180 行),但每节背后对应的 Wiki 内容可能很厚。地图是"地图",不是"地形"——看地图知道往哪走,真正走路要在 Wiki 上走。

本节要点

  1. OI Wiki 是免费开放的中文编程竞赛知识库,465 篇 md / 641 图 / 11.8 万行 / 455 代码文件,13 大类,质量靠多重 CI 保障。
  2. 它用 MkDocs + Material 主题构建,mkdocs.yml 的 nav 树就是整站目录。
  3. 这份地图只做三件事:分级学习路径、难点慢节奏精讲、实战串联。
  4. 绝对不重写 Wiki——Wiki 已是成熟中文教程,重写是重复造轮子。
  5. 地图与 Wiki 的关系是"导航+增量",用稳定的 docs/ 路径引用 Wiki 页面。

发布者: 作者: 灏天文库 转发
评论区 (0)
U